初始化
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:hgdj/assets_tool/app_colors.dart';
|
||||
import 'package:hgdj/tools_base/indicator/custom_tab_indicator.dart';
|
||||
import 'package:hgdj/tools_base/loading/loading_center_widget.dart';
|
||||
import 'package:hgdj/tools_base/widget/keep_alive_widget.dart';
|
||||
|
||||
import 'live_main_logic.dart';
|
||||
import 'live_sub_page.dart';
|
||||
|
||||
//直播首页
|
||||
class LiveMainPage extends StatelessWidget {
|
||||
static bool broadcast = false; //开启直播模块开关
|
||||
static bool jumpLiveLink = false; //直播内链跳转初始化
|
||||
|
||||
const LiveMainPage({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return GetBuilder<LiveMainLogic>(
|
||||
init: LiveMainLogic(),
|
||||
builder: (logic) {
|
||||
if (logic.liveMainModel == null) return const LoadingCenterWidget();
|
||||
return Column(
|
||||
children: [
|
||||
_buildTabBar(logic),
|
||||
Expanded(
|
||||
child: TabBarView(
|
||||
controller: logic.tabController,
|
||||
children: List.generate(
|
||||
logic.liveTabs.length,
|
||||
(index) =>
|
||||
LiveSubPage(tagData: logic.liveTabs[index]).keepAlive,
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
//国家分类
|
||||
Widget _buildTabBar(LiveMainLogic logic) {
|
||||
return SizedBox(
|
||||
height: 44,
|
||||
child: TabBar(
|
||||
controller: logic.tabController,
|
||||
tabs: List.generate(
|
||||
logic.liveTabs.length,
|
||||
(index) => Padding(
|
||||
padding: const EdgeInsets.only(bottom: 7),
|
||||
child: Text(logic.liveTabs[index].title ?? ''),
|
||||
),
|
||||
),
|
||||
labelPadding: const EdgeInsets.symmetric(horizontal: 9),
|
||||
tabAlignment: TabAlignment.start,
|
||||
isScrollable: true,
|
||||
labelColor: Colors.white.withValues(alpha: .9),
|
||||
labelStyle: const TextStyle(fontSize: 16, fontWeight: FontWeight.w500),
|
||||
unselectedLabelColor: Colors.white.withValues(alpha: .45),
|
||||
unselectedLabelStyle:
|
||||
const TextStyle(fontSize: 14, fontWeight: FontWeight.w400),
|
||||
indicatorPadding: const EdgeInsets.only(top: -4),
|
||||
indicator: CustomIndicator(
|
||||
height: 2,
|
||||
width: 16,
|
||||
borderRadius: const BorderRadius.only(
|
||||
topLeft: Radius.circular(1),
|
||||
topRight: Radius.circular(1),
|
||||
),
|
||||
color: AppColors.actionRed,
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user