5 changed files with 115 additions and 3 deletions
@ -0,0 +1,22 @@ |
|||
import 'package:flutter/material.dart'; |
|||
import 'package:get/get.dart'; |
|||
|
|||
import '../views/meeting_home_view.dart'; |
|||
import '../views/meeting_mine_view.dart'; |
|||
|
|||
class MeetingController extends GetxController { |
|||
late PageController pageController; |
|||
|
|||
final List<Widget> pageList = [ |
|||
const MeetingHomeView(), |
|||
const MeetingMineView(), |
|||
]; |
|||
|
|||
RxInt pageIndex = 0.obs; |
|||
|
|||
@override |
|||
void onInit() { |
|||
super.onInit(); |
|||
pageController = PageController(initialPage: 0); |
|||
} |
|||
} |
|||
@ -0,0 +1,88 @@ |
|||
import 'package:flutter/material.dart'; |
|||
import 'package:flutter_screenutil/flutter_screenutil.dart'; |
|||
import 'package:get/get.dart'; |
|||
|
|||
import '../controllers/meeting_controller.dart'; |
|||
|
|||
class MeetingView extends GetView<MeetingController> { |
|||
const MeetingView({super.key}); |
|||
|
|||
@override |
|||
Widget build(BuildContext context) { |
|||
return Scaffold( |
|||
body: PageView( |
|||
physics: const NeverScrollableScrollPhysics(), |
|||
controller: controller.pageController, |
|||
children: controller.pageList, |
|||
), |
|||
bottomNavigationBar: Stack( |
|||
alignment: Alignment.center, |
|||
clipBehavior: Clip.none, |
|||
children: [ |
|||
Obx( |
|||
() => BottomNavigationBar( |
|||
items: const [ |
|||
BottomNavigationBarItem( |
|||
icon: Icon(Icons.folder_outlined), |
|||
activeIcon: Icon(Icons.folder), |
|||
label: '文件', |
|||
), |
|||
BottomNavigationBarItem( |
|||
icon: SizedBox(), |
|||
activeIcon: SizedBox(), |
|||
label: '', |
|||
), |
|||
BottomNavigationBarItem( |
|||
icon: Icon(Icons.person_outline), |
|||
activeIcon: Icon(Icons.person), |
|||
label: '我的', |
|||
), |
|||
], |
|||
backgroundColor: Colors.white, |
|||
currentIndex: controller.pageIndex.value, |
|||
unselectedItemColor: Colors.grey, |
|||
selectedItemColor: Colors.red, |
|||
unselectedFontSize: 10.sp, |
|||
selectedFontSize: 10.sp, |
|||
onTap: (int index) { |
|||
if (index == controller.pageIndex.value) return; |
|||
if (index == 0) { |
|||
controller.pageIndex.value = 0; |
|||
controller.pageController.jumpToPage(0); |
|||
} else { |
|||
controller.pageIndex.value = 2; |
|||
controller.pageController.jumpToPage(1); |
|||
} |
|||
}, |
|||
), |
|||
), |
|||
Positioned( |
|||
top: -18.w, |
|||
child: Container( |
|||
width: 60.w, |
|||
height: 60.w, |
|||
padding: EdgeInsets.all(5.w), |
|||
alignment: Alignment.center, |
|||
decoration: BoxDecoration( |
|||
color: Colors.white, |
|||
borderRadius: BorderRadius.circular(60.w), |
|||
), |
|||
child: Container( |
|||
alignment: Alignment.center, |
|||
decoration: BoxDecoration( |
|||
color: Colors.red, |
|||
borderRadius: BorderRadius.circular(60.w), |
|||
), |
|||
child: Icon( |
|||
Icons.add, |
|||
color: Colors.white, |
|||
size: 30.w, |
|||
), |
|||
), |
|||
), |
|||
), |
|||
], |
|||
), |
|||
); |
|||
} |
|||
} |
|||
Loading…
Reference in new issue