91 lines
2.8 KiB
Dart
91 lines
2.8 KiB
Dart
|
|
import 'package:circle_app/util/util.dart';
|
|
import 'package:circle_app/view/ExitAppConfirmation.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
|
import 'package:get/get.dart';
|
|
|
|
import 'logic.dart';
|
|
|
|
class HomePage extends StatefulWidget {
|
|
HomePage({Key? key}) : super(key: key);
|
|
|
|
@override
|
|
State<HomePage> createState() => _HomePageState();
|
|
}
|
|
|
|
class _HomePageState extends State<HomePage> with AutomaticKeepAliveClientMixin {
|
|
@override
|
|
bool get wantKeepAlive => true;
|
|
final logic = Get.lazyPut(() => HomeLogic());
|
|
|
|
final state = Get.find<HomeLogic>().state;
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
|
|
return GetBuilder(builder: (HomeLogic controller) {
|
|
return GestureDetector(
|
|
onTap: () {
|
|
controller.onReady();
|
|
// Get.toNamed(AppRoutes.Complete_materialPage);
|
|
},
|
|
child: ExitAppConfirmation(child: Stack(children: [
|
|
Scaffold(
|
|
// backgroundColor: Color.fromRGBO(244, 245, 245, 1.0),
|
|
bottomNavigationBar: Container(
|
|
height: 49.sp + MediaQuery.of(context).padding.bottom,
|
|
width: Get.width,
|
|
// color: Colors.red,
|
|
padding: EdgeInsets.only(left: 50.sp, right: 50.sp, top: 8.sp),
|
|
decoration: BoxDecoration(
|
|
color: const Color(0xFF423055),
|
|
image: DecorationImage(
|
|
fit: BoxFit.fill,
|
|
image: AssetImage(
|
|
getTabbarImage('tabbar_bg'),
|
|
))),
|
|
child: Row(
|
|
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
children: [
|
|
funcItem(0, 'msg', 0 == controller.currentIndex, controller),
|
|
funcItem(1, 'circle', 1 == controller.currentIndex, controller),
|
|
funcItem(2, 'mine', 2 == controller.currentIndex, controller),
|
|
],
|
|
),
|
|
),
|
|
body: PageView(
|
|
physics: const NeverScrollableScrollPhysics(),
|
|
controller: controller.pageController,
|
|
onPageChanged: (int index) {
|
|
controller.updateIndex(index);
|
|
},
|
|
children: controller.tabs,
|
|
),
|
|
),
|
|
|
|
],),)
|
|
);
|
|
});
|
|
}
|
|
|
|
funcItem(int index, String image, bool isSelected, HomeLogic controller) {
|
|
return GestureDetector(
|
|
onTap: () {
|
|
if (!isSelected) {
|
|
controller.pageController.jumpToPage(index);
|
|
controller.updateIndex(index);
|
|
}
|
|
},
|
|
child: Image.asset(
|
|
isSelected
|
|
? getTabbarImage('${image}_selected')
|
|
: getTabbarImage('${image}_normal'),
|
|
width: 34.sp,
|
|
height: 34.sp,
|
|
),
|
|
);
|
|
}
|
|
}
|