4
2
Fork 0

added rough contact list implementation

pull/31/head
Sudharshan S. 2019-02-11 13:35:34 +08:00
parent 1ba280434e
commit e2f534b0fc
Signed by: sudharshan
GPG Key ID: C861C97AAF3D9559
4 changed files with 41 additions and 3 deletions

View File

@ -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<Home> {
Expanded(
child: PageView(controller: controller, children: <Widget>[
ConversationList(items: List<String>.generate(4, (i) => "Item $i")),
ConversationList(items: List<String>.generate(5, (i) => "Item $i")),
ContactList(items: List<String>.generate(5, (i) => "Item $i")),
ConversationList(items: List<String>.generate(6, (i) => "Item $i"))
]))
]),

View File

@ -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"));
}
}

View File

@ -0,0 +1,19 @@
import "package:flutter/material.dart";
import "package:frontend_flutter/widgets/contact_item/index.dart";
class ContactList extends StatelessWidget {
final List<String> 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();
},
);
}
}

View File

@ -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: <Widget>[
CircleAvatar(
backgroundColor: Colors.brown.shade800, child: Text(name)),
backgroundColor: Colors.brown.shade800,
child: Text(name),
radius: radius),
active
? Container(
width: 12.0,