import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:huixiang/article/hot_article_item.dart'; import 'package:huixiang/community/community_child_page.dart'; import 'package:huixiang/home/huixiang_brand_page.dart'; import 'package:huixiang/view_widget/my_appbar.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:huixiang/view_widget/my_tab.dart'; class CommunityPage extends StatefulWidget { @override State createState() { return _CommunityPage(); } } class _CommunityPage extends State with SingleTickerProviderStateMixin { TabController tabcontroller; List lables = [ "关注", "推荐", "头条", "关于我们", // "课程", // "直播", ]; @override void initState() { super.initState(); if (tabcontroller == null) tabcontroller = TabController(length: lables.length, vsync: this, initialIndex: 1); } _toRelease() async { int tmpIndex = tabcontroller.index; setState(() { tabcontroller.index = (tabcontroller.index == lables.length -1)?0:tabcontroller.index+1; }); var result = await Navigator.of(context).pushNamed('/router/release_dynamic'); setState(() { tabcontroller.index = tmpIndex; }); } @override Widget build(BuildContext context) { return Scaffold( appBar: MyAppBar( leading: false, titleChild: PreferredSize( preferredSize: Size( MediaQuery.of(context).size.width - 60, 38.h, ), child: TabBar( controller: tabcontroller, automaticIndicatorColorAdjustment: true, isScrollable: true, indicatorWeight: 2, indicatorColor: Color(0xFF39B54A), labelPadding: EdgeInsets.only(left: 8.w, right: 8.w), indicatorSize: TabBarIndicatorSize.label, unselectedLabelStyle: TextStyle( fontSize: 15.sp, fontWeight: FontWeight.w400, ), labelStyle: TextStyle( color: Colors.black, fontSize: 18.sp, fontWeight: FontWeight.bold, ), labelColor: Colors.black, tabs: lables.map((e) => MyTab(text: e)).toList(), ), ), onTap: () { _toRelease(); }, action: SvgPicture.asset( "assets/svg/shequ_fabu.svg", fit: BoxFit.contain, width: 24, height: 24, ), ), body: Container( padding: EdgeInsets.only(bottom: 76.h), child: TabBarView( physics: BouncingScrollPhysics(), children: lables.map((e) { if (e == "关于我们") { return BrandPage(); }else if(e == "头条"){ return HotArticlePage(); } else { return CommunityChildPage(e); } }).toList(), controller: tabcontroller, ), ), ); } }