75 lines
2.5 KiB
Dart
75 lines
2.5 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:get/get.dart';
|
|
import 'package:hgdj/tools_base/loading/loading_center_widget.dart';
|
|
import 'package:provider/provider.dart';
|
|
|
|
import '../../alert/aw_permission_alert.dart';
|
|
import '../../hj_utils/screen.dart';
|
|
import '../../tools_base/global_store/store.dart';
|
|
import 'home_drawer.dart';
|
|
import 'home_main_logic.dart';
|
|
import 'home_main_page.dart';
|
|
import 'search_page/widget/common_search_widget.dart';
|
|
|
|
class DarkHomePage extends StatefulWidget {
|
|
final String? defaultId;
|
|
const DarkHomePage({super.key, this.defaultId});
|
|
|
|
@override
|
|
State<DarkHomePage> createState() => _DarkHomePageState();
|
|
}
|
|
|
|
class _DarkHomePageState extends State<DarkHomePage> {
|
|
late final logic =
|
|
HomeMainLogic(isDarkStyle: true, darkDefaultId: widget.defaultId);
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Material(
|
|
color: const Color(0xff050f17),
|
|
child: GetBuilder<HomeMainLogic>(
|
|
init: logic,
|
|
tag: "HomeMainLogic_dark",
|
|
builder: (_) {
|
|
return Stack(
|
|
fit: StackFit.expand,
|
|
children: [
|
|
Scaffold(
|
|
//openEndDrawer 靠这个 key 拿 ScaffoldState,不挂 key 点右上角菜单没反应
|
|
key: logic.scaffoldKey,
|
|
backgroundColor: Colors.black,
|
|
endDrawer: HSHomeDrawer(homeLogic: logic),
|
|
body: logic.isLoading
|
|
? const LoadingCenterWidget()
|
|
: Column(
|
|
children: [
|
|
Container(
|
|
margin: EdgeInsets.only(top: screen.paddingTop),
|
|
height: kToolbarHeight,
|
|
//必须传 logic,右上角菜单的 onTap 是 logic?.openEndDrawer()
|
|
child: CommonSearchBarView(logic: logic),
|
|
),
|
|
Expanded(
|
|
child: HomeTabView(
|
|
key: ValueKey(logic.tabViewKey),
|
|
logic: logic,
|
|
isDarkStyle: true,
|
|
),
|
|
),
|
|
],
|
|
),
|
|
),
|
|
Consumer<GlobalStore>(builder: (_, store, __) {
|
|
if (store.isAWVIP) return const SizedBox.shrink();
|
|
return const Positioned.fill(
|
|
child: AwPermissionAlert(),
|
|
);
|
|
}),
|
|
],
|
|
);
|
|
},
|
|
),
|
|
);
|
|
}
|
|
}
|