WallPaper_FSX_Flutter/lib/modules/root/root_view.dart
fengshengxiong 9caadfb09a 1.按照UI图修改
2.完善其他功能
2024-05-17 17:02:22 +08:00

64 lines
1.9 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:now_wallpaper/common/components/keep_alive_wrapper.dart';
import 'package:now_wallpaper/common/components/navigation_bar/title_bar_widget.dart';
import 'package:now_wallpaper/modules/root/root_controller.dart';
class RootView extends GetView<RootController> {
const RootView({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: Column(
children: [
Obx(() {
return TitleBarWidget(
controller.pages[controller.currentIndex.value].label,
settingsOnTap: controller.onTapSettings,
);
}),
Expanded(
child: PageView(
physics: const NeverScrollableScrollPhysics(),
controller: controller.pageController,
onPageChanged: (index) => controller.onPageChanged(index),
children: controller.pages.map((e) => KeepAliveWrapper(child: e.widget)).toList(),
),
),
],
),
),
bottomNavigationBar: Obx(() {
return BottomNavigationBar(
currentIndex: controller.currentIndex.value,
onTap: (index) => controller.onTapNavigationBar(index),
items: _bottomNavigationBarItems(),
);
}),
);
}
List<BottomNavigationBarItem> _bottomNavigationBarItems() {
return controller.pages.map((e) {
return BottomNavigationBarItem(
icon: Image.asset(
e.icons[0],
width: 22.w,
height: 22.w,
gaplessPlayback: true,
),
activeIcon: Image.asset(
e.icons[1],
width: 22.w,
height: 22.w,
gaplessPlayback: true,
),
label: e.label,
);
}).toList();
}
}