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: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(),
|
||||
),
|
||||
));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user