From e2f534b0fc19138f88b5e256d8cc8d4b830ddcbb Mon Sep 17 00:00:00 2001 From: Sudharshan Date: Mon, 11 Feb 2019 13:35:34 +0800 Subject: [PATCH] added rough contact list implementation --- lib/screens/home/home.dart | 3 ++- lib/widgets/contact_item/contact_item.dart | 11 +++++++++++ lib/widgets/contact_list/contact_list.dart | 19 +++++++++++++++++++ lib/widgets/user_avatar/user_avatar.dart | 11 +++++++++-- 4 files changed, 41 insertions(+), 3 deletions(-) diff --git a/lib/screens/home/home.dart b/lib/screens/home/home.dart index 611e276..a2ef9d1 100644 --- a/lib/screens/home/home.dart +++ b/lib/screens/home/home.dart @@ -2,6 +2,7 @@ import "package:flutter/material.dart"; import "package:frontend_flutter/widgets/top_bar/index.dart"; import "package:frontend_flutter/widgets/conversation_list/index.dart"; +import "package:frontend_flutter/widgets/contact_list/index.dart"; import "package:frontend_flutter/widgets/bottom_bar/index.dart"; class Home extends StatefulWidget { @@ -41,7 +42,7 @@ class _HomeState extends State { Expanded( child: PageView(controller: controller, children: [ ConversationList(items: List.generate(4, (i) => "Item $i")), - ConversationList(items: List.generate(5, (i) => "Item $i")), + ContactList(items: List.generate(5, (i) => "Item $i")), ConversationList(items: List.generate(6, (i) => "Item $i")) ])) ]), diff --git a/lib/widgets/contact_item/contact_item.dart b/lib/widgets/contact_item/contact_item.dart index e69de29..85a73bc 100644 --- a/lib/widgets/contact_item/contact_item.dart +++ b/lib/widgets/contact_item/contact_item.dart @@ -0,0 +1,11 @@ +import "package:flutter/material.dart"; +import "package:frontend_flutter/widgets/user_avatar/index.dart"; + +class ContactItem extends StatelessWidget { + @override + Widget build(BuildContext context) { + return ListTile( + leading: UserAvatar(active: true, name: "SU", radius: 25.0), + title: Text("Sudharshan")); + } +} diff --git a/lib/widgets/contact_list/contact_list.dart b/lib/widgets/contact_list/contact_list.dart index e69de29..cd3d2ef 100644 --- a/lib/widgets/contact_list/contact_list.dart +++ b/lib/widgets/contact_list/contact_list.dart @@ -0,0 +1,19 @@ +import "package:flutter/material.dart"; +import "package:frontend_flutter/widgets/contact_item/index.dart"; + +class ContactList extends StatelessWidget { + final List items; + + ContactList({Key key, @required this.items}) : super(key: key); + + @override + Widget build(BuildContext context) { + return ListView.builder( + padding: EdgeInsets.only(top: 0.0), + itemCount: items.length, + itemBuilder: (context, index) { + return ContactItem(); + }, + ); + } +} diff --git a/lib/widgets/user_avatar/user_avatar.dart b/lib/widgets/user_avatar/user_avatar.dart index 4e7db0c..2d42ab5 100644 --- a/lib/widgets/user_avatar/user_avatar.dart +++ b/lib/widgets/user_avatar/user_avatar.dart @@ -4,8 +4,13 @@ class UserAvatar extends StatelessWidget { final bool active; final String name; final EdgeInsetsGeometry padding; + final double radius; - UserAvatar({this.active, this.name, this.padding: const EdgeInsets.all(0.0)}); + UserAvatar( + {@required this.active, + @required this.name, + this.padding: const EdgeInsets.all(0.0), + this.radius: 20.0}); @override Widget build(BuildContext context) { @@ -13,7 +18,9 @@ class UserAvatar extends StatelessWidget { padding: padding, child: Stack(alignment: Alignment.bottomRight, children: [ CircleAvatar( - backgroundColor: Colors.brown.shade800, child: Text(name)), + backgroundColor: Colors.brown.shade800, + child: Text(name), + radius: radius), active ? Container( width: 12.0,