mirror of
https://github.com/nisrulz/flutter-examples.git
synced 2025-07-15 02:46:03 +08:00
updated: using_listview example with working implementation
This commit is contained in:
33
using_listview/lib/contact_page.dart
Normal file
33
using_listview/lib/contact_page.dart
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:using_listview/contactlist/contact_list.dart';
|
||||||
|
import 'package:using_listview/contactlist/modal/contact.dart';
|
||||||
|
|
||||||
|
class ContactPage extends StatelessWidget {
|
||||||
|
_buildContactList() {
|
||||||
|
return <ContactModal>[
|
||||||
|
const ContactModal(
|
||||||
|
fullName: 'Romain Hoogmoed', email: 'romain.hoogmoed@example.com'),
|
||||||
|
const ContactModal(
|
||||||
|
fullName: 'Emilie Olsen', email: 'emilie.olsen@example.com'),
|
||||||
|
const ContactModal(
|
||||||
|
fullName: 'Nishant Srivastava', email: 'nishant.srivastava@example.com'),
|
||||||
|
const ContactModal(
|
||||||
|
fullName: 'Romain Hoogmoed', email: 'romain.hoogmoed@example.com'),
|
||||||
|
const ContactModal(
|
||||||
|
fullName: 'Emilie Olsen', email: 'emilie.olsen@example.com'),
|
||||||
|
const ContactModal(
|
||||||
|
fullName: 'Nishant Srivastava', email: 'nishant.srivastava@example.com'),
|
||||||
|
const ContactModal(
|
||||||
|
fullName: 'Romain Hoogmoed', email: 'romain.hoogmoed@example.com'),
|
||||||
|
const ContactModal(
|
||||||
|
fullName: 'Emilie Olsen', email: 'emilie.olsen@example.com'),
|
||||||
|
const ContactModal(
|
||||||
|
fullName: 'Nishant Srivastava', email: 'nishant.srivastava@example.com'),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return new Scaffold(body: new ContactsList(_buildContactList()));
|
||||||
|
}
|
||||||
|
}
|
23
using_listview/lib/contactlist/contact_list.dart
Normal file
23
using_listview/lib/contactlist/contact_list.dart
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:using_listview/contactlist/contact_list_item.dart';
|
||||||
|
import 'package:using_listview/contactlist/modal/contact.dart';
|
||||||
|
|
||||||
|
class ContactsList extends StatelessWidget {
|
||||||
|
final List<ContactModal> _contactModal;
|
||||||
|
|
||||||
|
ContactsList(this._contactModal);
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return new ListView(
|
||||||
|
padding: new EdgeInsets.symmetric(vertical: 8.0),
|
||||||
|
children: _buildContactsList(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<ContactListItem> _buildContactsList() {
|
||||||
|
return _contactModal
|
||||||
|
.map((contact) => new ContactListItem(contact))
|
||||||
|
.toList();
|
||||||
|
}
|
||||||
|
}
|
16
using_listview/lib/contactlist/contact_list_item.dart
Normal file
16
using_listview/lib/contactlist/contact_list_item.dart
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:using_listview/contactlist/modal/contact.dart';
|
||||||
|
|
||||||
|
class ContactListItem extends StatelessWidget {
|
||||||
|
final ContactModal _contactModal;
|
||||||
|
|
||||||
|
ContactListItem(this._contactModal);
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return new ListTile(
|
||||||
|
leading: new CircleAvatar(child: new Text(_contactModal.fullName[0])),
|
||||||
|
title: new Text(_contactModal.fullName),
|
||||||
|
subtitle: new Text(_contactModal.email));
|
||||||
|
}
|
||||||
|
}
|
6
using_listview/lib/contactlist/modal/contact.dart
Normal file
6
using_listview/lib/contactlist/modal/contact.dart
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
class ContactModal {
|
||||||
|
final String fullName;
|
||||||
|
final String email;
|
||||||
|
|
||||||
|
const ContactModal({this.fullName, this.email});
|
||||||
|
}
|
@ -1,19 +1,13 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:using_listview/contact_page.dart';
|
||||||
|
|
||||||
void main() => runApp(new MyApp());
|
void main() {
|
||||||
|
runApp(new MaterialApp(
|
||||||
class MyApp extends StatelessWidget {
|
home: new Scaffold(
|
||||||
// This widget is the root of your application.
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
return new MaterialApp(
|
|
||||||
home: new Scaffold(
|
|
||||||
appBar: new AppBar(
|
appBar: new AppBar(
|
||||||
title: new Text("Using Listview"),
|
title: new Text("Using Listview"),
|
||||||
),
|
),
|
||||||
body: new Center(
|
body: new ContactPage(),
|
||||||
child: new Text("Hello World!"),
|
),
|
||||||
),
|
));
|
||||||
));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user