updated: using_listview example with working implementation

This commit is contained in:
Nishant Srivastava
2018-01-20 03:23:01 +05:30
parent b1644e96f3
commit b4110ca438
5 changed files with 85 additions and 13 deletions

View 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()));
}
}

View 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();
}
}

View 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));
}
}

View File

@ -0,0 +1,6 @@
class ContactModal {
final String fullName;
final String email;
const ContactModal({this.fullName, this.email});
}

View File

@ -1,19 +1,13 @@
import 'package:flutter/material.dart';
import 'package:using_listview/contact_page.dart';
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return new MaterialApp(
void main() {
runApp(new MaterialApp(
home: new Scaffold(
appBar: new AppBar(
title: new Text("Using Listview"),
),
body: new Center(
child: new Text("Hello World!"),
body: new ContactPage(),
),
));
}
}