You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

88 lines
2.8 KiB

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