本文主要是介绍Flutter中GetX系列四--BottomSheet(底部弹框),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
BottomSheet介绍
BottomSheet
是底部弹出的一个组件,常用于单选、验证码二次校验弹窗等,GetX
的BottomSheet
底部弹出是自定义通过路由push的方法实现底部弹窗的一个效果。
BottomSheet使用
我们可以通过GetX
很轻松的调用bottomSheet()
,而且无需传入context
,下面我给出一个例子,使用GetX
弹出bottomSheet
并很轻松的实现切换主题
第一步:应用程序入口设置
当我们导入依赖后,在应用程序顶层把GetMaterialApp
作为顶层,如下所示
import 'package:flutter/material.dart';
import 'package:flutter_getx_example/DialogExample/DialogExample.dart';
import 'package:get/get.dart';void main() {runApp(MyApp());
}class MyApp extends StatelessWidget {@overrideWidget build(BuildContext context) {return GetMaterialApp(title: "GetX",home: DialogExample(),);}
}
第二步:调用BottomSheet
我们可以通过Get.bottomSheet()
来显示 BottomSheet
,如下所示,其中
Get.isDarkMode可以用来判断是否是夜晚模式
Get.changeTheme(ThemeData.light())用来改变当前的主题模式
import 'package:flutter/material.dart';
import 'package:get/get.dart';class BottomSheetExample extends StatelessWidget {GlobalKey<NavigatorState> _navKey = GlobalKey();@overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text("GetX Title"),),body: Center(child: Column(mainAxisAlignment: MainAxisAlignment.center,crossAxisAlignment: CrossAxisAlignment.center,children: [ElevatedButton(onPressed: () {Get.bottomSheet(Container(child: Wrap(children: [ListTile(leading: Icon(Icons.wb_sunny_outlined),title: Text("白天模式"),onTap: () {//改变主题模式(白天模式还是夜晚模式)//Get.isDarkMode用来判断是否是夜晚模式Get.changeTheme(ThemeData.light());},),ListTile(leading: Icon(Icons.wb_sunny),title: Text("黑夜模式"),onTap: () {//改变主题模式(白天模式还是夜晚模式)Get.changeTheme(ThemeData.dark());},)],),));}, child: Text("Bottom Sheet"))],),),);}
}
效果展示
BottomSheet属性和说明
序列号 | 字段 | 属性 | 描述 |
---|---|---|---|
1 | bottomsheet | Widget | 弹出的Widget组件 |
2 | backgroundColor | Color | bottomsheet的背景颜色 |
3 | elevation | double | bottomsheet的阴影 |
4 | persistent | bool | 是否添加到路由中 |
5 | shape | ShapeBorder | 边框形状,一般用于圆角效果 |
6 | clipBehavior | Clip | 裁剪的方式 |
7 | barrierColor | Color | 弹出层的背景颜色 |
8 | ignoreSafeArea | bool | 是否忽略安全适配 |
9 | isScrollControlled | bool | 是否支持全屏弹出,默认false |
10 | useRootNavigator | bool | 是否使用根导航 |
11 | isDismissible | bool | 点击背景是否可关闭,默认ture |
12 | enableDrag | bool | 是否可以拖动关闭,默认true |
13 | settings | RouteSettings | 路由设置 |
14 | enterBottomSheetDuration | Duration | bottomsheet进入时的动画时间 |
15 | exitBottomSheetDuration | Duration | bottomsheet退出时的动画时间 |
这篇关于Flutter中GetX系列四--BottomSheet(底部弹框)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!