circle_app/circle_app/lib/app/home/view.dart
2023-07-19 17:52:53 +08:00

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,
),
);
}
}