import 'package:akuCommunity/base/base_style.dart'; import 'package:akuCommunity/pages/community/note_create_page.dart'; import 'package:akuCommunity/widget/bee_scaffold.dart'; import 'package:flutter/material.dart'; import 'package:flutter/cupertino.dart'; import 'package:akuCommunity/utils/headers.dart'; import 'widget/tab_list.dart'; import 'package:velocity_x/velocity_x.dart'; class CommunityIndex extends StatefulWidget { CommunityIndex({Key key}) : super(key: key); @override _CommunityIndexState createState() => _CommunityIndexState(); } class _CommunityIndexState extends State with AutomaticKeepAliveClientMixin, SingleTickerProviderStateMixin { @override bool get wantKeepAlive => true; TabController _tabController; List tabs = [ {'name': '最新', 'id': 'new'}, {'name': '话题', 'id': 'new'}, {'name': '我的', 'id': 'new'}, ]; @override void initState() { super.initState(); // 创建Controller _tabController = TabController(length: tabs.length, vsync: this); } void noteCreateRouter() { NoteCreatePage().to(); } List _listActions() { return [ FlatButton( minWidth: 48.w + 27.w * 2, onPressed: () {}, child: Column( mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ Icon( CupertinoIcons.bell, size: 48.w, ), '消息'.text.black.size(20.sp).make(), ], )) ]; } AppBar _appBar() { return AppBar( backgroundColor: Colors.white, elevation: 0, title: Text("社区"), centerTitle: true, actions: _listActions(), bottom: PreferredSize( preferredSize: Size.fromHeight(kToolbarHeight), child: Align( alignment: Alignment.centerLeft, child: TabBar( controller: _tabController, isScrollable: true, indicatorColor: Color(0xffFFd000), labelColor: Color(0xff000000), unselectedLabelColor: Color(0xFF3A5160).withOpacity(0.5), indicatorWeight: 2.0, indicatorSize: TabBarIndicatorSize.label, labelStyle: TextStyle( fontSize: 28.sp, color: Color(0xff333333), fontWeight: FontWeight.w600, ), tabs: List.generate( tabs.length, (index) => Tab( text: tabs[index]['name'], ), ), ), ), ), ); } FloatingActionButton _floatingActionButton() { return FloatingActionButton( backgroundColor: Color(0xffffd000), child: Icon( Icons.add, color: Colors.white, size: 40.sp, ), onPressed: noteCreateRouter, ); } @override Widget build(BuildContext context) { super.build(context); return BeeScaffold( title: '社区', actions: _listActions(), body: Stack( children: [ Column( children: [ Material( color: kForeGroundColor, child: PreferredSize( preferredSize: Size.fromHeight(kToolbarHeight), child: Align( alignment: Alignment.centerLeft, child: TabBar( indicatorPadding: EdgeInsets.zero, controller: _tabController, isScrollable: true, indicatorColor: Color(0xffFFd000), indicatorWeight: 2.w, indicatorSize: TabBarIndicatorSize.label, unselectedLabelStyle: TextStyle( color: Color(0xFF333333), fontSize: 28.sp, ), labelStyle: TextStyle( fontSize: 28.sp, color: Color(0xff333333), fontWeight: FontWeight.bold, ), tabs: List.generate( tabs.length, (index) => Tab( text: tabs[index]['name'], ), ), ), ), ), ), Expanded( child: TabBarView( controller: _tabController, children: List.generate( tabs.length, (index) => TabList(index: index), ), ), ), // _floatingActionButton(), ], ), Positioned( right: 30.w, bottom: 50.w, child: _floatingActionButton(), ) ], ), ); } }