Flutter中GetX系列四--BottomSheet(底部弹框)

2023-11-01 07:30

本文主要是介绍Flutter中GetX系列四--BottomSheet(底部弹框),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

BottomSheet介绍

 

BottomSheet 是底部弹出的一个组件,常用于单选、验证码二次校验弹窗等,GetXBottomSheet底部弹出是自定义通过路由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属性和说明 

序列号字段属性描述
1bottomsheetWidget弹出的Widget组件
2backgroundColorColorbottomsheet的背景颜色
3elevationdoublebottomsheet的阴影
4persistentbool是否添加到路由中
5shapeShapeBorder边框形状,一般用于圆角效果
6clipBehaviorClip裁剪的方式
7barrierColorColor弹出层的背景颜色
8ignoreSafeAreabool是否忽略安全适配
9isScrollControlledbool是否支持全屏弹出,默认false
10useRootNavigatorbool是否使用根导航
11isDismissiblebool点击背景是否可关闭,默认ture
12enableDragbool是否可以拖动关闭,默认true
13settingsRouteSettings路由设置
14enterBottomSheetDurationDurationbottomsheet进入时的动画时间
15exitBottomSheetDurationDurationbottomsheet退出时的动画时间

这篇关于Flutter中GetX系列四--BottomSheet(底部弹框)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/321438

相关文章

Flutter监听当前页面可见与隐藏状态的代码详解

《Flutter监听当前页面可见与隐藏状态的代码详解》文章介绍了如何在Flutter中使用路由观察者来监听应用进入前台或后台状态以及页面的显示和隐藏,并通过代码示例讲解的非常详细,需要的朋友可以参考下... flutter 可以监听 app 进入前台还是后台状态,也可以监听当http://www.cppcn

四种Flutter子页面向父组件传递数据的方法介绍

《四种Flutter子页面向父组件传递数据的方法介绍》在Flutter中,如果父组件需要调用子组件的方法,可以通过常用的四种方式实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录方法 1:使用 GlobalKey 和 State 调用子组件方法方法 2:通过回调函数(Callb

鸿蒙开发搭建flutter适配的开发环境

《鸿蒙开发搭建flutter适配的开发环境》文章详细介绍了在Windows系统上如何创建和运行鸿蒙Flutter项目,包括使用flutterdoctor检测环境、创建项目、编译HAP包以及在真机上运... 目录环境搭建创建运行项目打包项目总结环境搭建1.安装 DevEco Studio NEXT IDE

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

Flutter 进阶:绘制加载动画

绘制加载动画:由小圆组成的大圆 1. 定义 LoadingScreen 类2. 实现 _LoadingScreenState 类3. 定义 LoadingPainter 类4. 总结 实现加载动画 我们需要定义两个类:LoadingScreen 和 LoadingPainter。LoadingScreen 负责控制动画的状态,而 LoadingPainter 则负责绘制动画。

flume系列之:查看flume系统日志、查看统计flume日志类型、查看flume日志

遍历指定目录下多个文件查找指定内容 服务器系统日志会记录flume相关日志 cat /var/log/messages |grep -i oom 查找系统日志中关于flume的指定日志 import osdef search_string_in_files(directory, search_string):count = 0

GPT系列之:GPT-1,GPT-2,GPT-3详细解读

一、GPT1 论文:Improving Language Understanding by Generative Pre-Training 链接:https://cdn.openai.com/research-covers/languageunsupervised/language_understanding_paper.pdf 启发点:生成loss和微调loss同时作用,让下游任务来适应预训

Flutter Button使用

Material 组件库中有多种按钮组件如ElevatedButton、TextButton、OutlineButton等,它们的父类是于ButtonStyleButton。         基本的按钮特点:         1.按下时都会有“水波文动画”。         2.onPressed属性设置点击回调,如果不提供该回调则按钮会处于禁用状态,禁用状态不响应用户点击。