import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:aslan/app_localizations.dart'; import 'package:aslan/chatvibe_ui/components/at_debounce_widget.dart'; import 'package:aslan/chatvibe_features/dynamic/dynamic_route.dart'; import 'package:aslan/chatvibe_features/dynamic/following/dynamic_following_page.dart'; import 'package:aslan/chatvibe_features/dynamic/trend/dynamic_trend_page.dart'; import 'package:provider/provider.dart'; import 'package:aslan/chatvibe_ui/components/at_compontent.dart'; import 'package:aslan/chatvibe_core/constants/at_global_config.dart'; import 'package:aslan/chatvibe_core/routes/at_fluro_navigator.dart'; import 'package:aslan/chatvibe_data/sources/local/user_manager.dart'; import 'package:aslan/chatvibe_managers/app_general_manager.dart'; import 'package:aslan/chatvibe_managers/user_profile_manager.dart'; ///动态 class IndexDynamicPage extends StatefulWidget { @override _IndexDynamicPageState createState() => _IndexDynamicPageState(); } class _IndexDynamicPageState extends State { @override void initState() { super.initState(); } @override void dispose() { super.dispose(); } @override Widget build(BuildContext context) { return Stack( children: [ Image.asset( ATGlobalConfig.businessLogicStrategy.getDynamicPageBackgroundImage(), width: ScreenUtil().screenWidth, fit: BoxFit.cover, ), DefaultTabController( length: 2, initialIndex: 1, child: Scaffold( backgroundColor: ATGlobalConfig.businessLogicStrategy.getDynamicPageScaffoldBackgroundColor(), appBar: AppBar( backgroundColor: ATGlobalConfig.businessLogicStrategy.getDynamicPageAppBarBackgroundColor(), leading: Transform.translate( offset: Offset(ATGlobalConfig.lang == "ar" ? -9.w : 9.w, 0), child: Transform.scale( scale: 0.782, child: GestureDetector( child: Consumer( builder: (context, ref, child) { return netImage( url: AccountStorage() .getCurrentUser() ?.userProfile ?.userAvatar ?? "", defaultImg: 'atu_images/general/at_icon_avar_defalt.png', width: 32.w, height: 32.w, shape: BoxShape.circle, ); }, ), onTap: () { Provider.of( context, listen: false, ).openDrawer(context); }, ), ), ), title: TabBar( tabs: [ ATAppLocalizations.of(context)!.following, ATAppLocalizations.of(context)!.trend, ] .map( (e) => Padding( padding: EdgeInsets.only(bottom: 3.w, top: 4.w), child: Text(e), ), ) .toList(), labelColor: ATGlobalConfig.businessLogicStrategy.getDynamicPageTabLabelColor(), tabAlignment: TabAlignment.center, isScrollable: ATGlobalConfig.businessLogicStrategy.shouldDynamicPageTabScrollable(), splashFactory: NoSplash.splashFactory, overlayColor: MaterialStateProperty.all(Colors.transparent), indicator: BoxDecoration(), unselectedLabelColor: ATGlobalConfig.businessLogicStrategy.getDynamicPageTabUnselectedLabelColor(), labelStyle: ATGlobalConfig.businessLogicStrategy .getDynamicPageTabLabelStyle() .copyWith( fontSize: ATGlobalConfig.businessLogicStrategy .getDynamicPageTabLabelStyle() .fontSize ?.sp, ), unselectedLabelStyle: ATGlobalConfig.businessLogicStrategy .getDynamicPageTabUnselectedLabelStyle() .copyWith( fontSize: ATGlobalConfig.businessLogicStrategy .getDynamicPageTabUnselectedLabelStyle() .fontSize ?.sp, ), indicatorColor: ATGlobalConfig.businessLogicStrategy.getDynamicPageTabIndicatorColor(), dividerColor: ATGlobalConfig.businessLogicStrategy.getDynamicPageTabDividerColor(), ), actions: [Container(width: 40.w)], ), body: TabBarView( children: [DynamicFollowingPage(), DynamicTrendPage()], ), ), ), PositionedDirectional( bottom: 80.w, end: 0.w, child: ATDebounceWidget( child: Image.asset( ATGlobalConfig.businessLogicStrategy.getDynamicPageAddButtonIcon(), height: 75.w, ), onTap: () { ATNavigatorUtils.push(context, DynamicRoute.create, replace: false); }, ), ), ], ); } }