Created
May 11, 2020 11:01
-
-
Save ibtesam123/18b20f61256f4a978adf8a552d17f416 to your computer and use it in GitHub Desktop.
Realtime Chat II
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'package:flutter/material.dart'; | |
import 'package:scoped_model/scoped_model.dart'; | |
import './ChatPage.dart'; | |
import './User.dart'; | |
import './ChatModel.dart'; | |
class AllChatsPage extends StatefulWidget { | |
@override | |
_AllChatsPageState createState() => _AllChatsPageState(); | |
} | |
class _AllChatsPageState extends State<AllChatsPage> { | |
@override | |
void initState() { | |
super.initState(); | |
ScopedModel.of<ChatModel>(context, rebuildOnChange: false).init(); | |
} | |
void friendClicked(User friend) { | |
Navigator.of(context).push( | |
MaterialPageRoute( | |
builder: (BuildContext context) { | |
return ChatPage(friend); | |
}, | |
), | |
); | |
} | |
Widget buildAllChatList() { | |
return ScopedModelDescendant<ChatModel>( | |
builder: (context, child, model) { | |
return ListView.builder( | |
itemCount: model.friendList.length, | |
itemBuilder: (BuildContext context, int index) { | |
User friend = model.friendList[index]; | |
return ListTile( | |
title: Text(friend.name), | |
onTap: () => friendClicked(friend), | |
); | |
}, | |
); | |
}, | |
); | |
} | |
@override | |
Widget build(BuildContext context) { | |
return Scaffold( | |
appBar: AppBar( | |
title: Text('All Chats'), | |
), | |
body: buildAllChatList(), | |
); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment