import 'package:e2ee_chat/common/global.dart'; import 'package:e2ee_chat/l10n/localization_intl.dart'; import 'package:e2ee_chat/common/api.dart'; import 'package:e2ee_chat/presenter/theme.dart'; import 'package:e2ee_chat/widgets/empty.dart'; import 'package:e2ee_chat/view/mydrawer.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'contact_list.dart'; import 'group.dart'; import 'chat_list.dart'; class HomeRoute extends StatefulWidget { @override _HomeRouteState createState() => _HomeRouteState(); } class _HomeRouteState extends State { int _index = 0; @override void initState() { super.initState(); } @override Widget build(BuildContext context) { var gm = GmLocalizations.of(context); return Scaffold( appBar: AppBar( title: Text(gm.home), actions: [ PopupMenuButton(itemBuilder: (context) { return [ PopupMenuItem( child: Container( child: TextButton( onPressed: () => Navigator.of(context).pushNamed("add friend"), child: Row( children: [ Icon(Icons.person_add), Text("添加朋友"), ], )), )) ]; }), ], ), drawer: MyDrawer(), bottomNavigationBar: BottomNavigationBar( items: [ BottomNavigationBarItem(icon: Icon(Icons.chat_bubble), label: "message"), BottomNavigationBarItem(icon: Icon(Icons.people), label: "friends"), BottomNavigationBarItem(icon: Icon(Icons.person), label: "group"), ], currentIndex: _index, fixedColor: Provider.of(context).theme, onTap: _onItemTapped, ), body: _buildBody(), // 构建主页面 ); } void _onItemTapped(int value) { setState(() { _index = value; }); } Widget _buildBody() { switch (_index) { case 0: return ChatList(); case 1: return ContactListView(); case 2: return GroupRoute(); } return EmptyWidget(); // return RefreshIndicator(child: _buildChild(), onRefresh: _onRefresh); } Future _onRefresh() async { // TODO: pull to refresh } }