【Flutter】底部导航BottomNavigationBar的使用

常用基本属性

属性名含义是否必须
items底部导航栏的子项List
currentIndex当前显示索引
onTap底部导航栏的点击事件, Function(int)
type底部导航栏类型,定义 [BottomNavigationBar] 的布局和行为
selectedItemColor选中项图标和label的颜色
unselectedItemColor未选中项图标和label的颜色
iconSize图标大小
backgroundColor底部导航栏背景色
showSelectedLabels是否显示选中项的label
showUnselectedLabels是否显示未选中项的label
selectedIconTheme选中项 图标的主题 设置
unselectedIconTheme选中项 图标的主题 设置
selectedFontSize选中项 文字大小 设置
unselectedFontSize未选中项 文字大小 设置
selectedLabelStyle选中项 文字样式 设置
unselectedLabelStyle未选中项 文字样式 设置
mouseCursor当鼠标指针进入或悬停在屏幕上时的光标
enableFeedback检测到的手势是否应提供声音和/或触觉反馈

示例

效果一

当选中时图标文字变色,未选中时不显示文字
在这里插入图片描述

	bottomNavigationBar: BottomNavigationBar(selectedItemColor: Colors.red, // 选中时unselectedItemColor: Colors.black, // 未选中currentIndex: _currentIndex,onTap: (value) {setState(() {_currentIndex = value;});},items: const [BottomNavigationBarItem(icon: Icon(Icons.home),label: 'Home',),// ...],),

效果二

显示图标和文字,选中变色
在这里插入图片描述

可设置type: BottomNavigationBarType.fixed固定或设置showUnselectedLabels: true

	bottomNavigationBar: BottomNavigationBar(selectedItemColor: Colors.red, // 选中时unselectedItemColor: Colors.black, // 未选中type: BottomNavigationBarType.fixed,  // 固定currentIndex: _currentIndex,onTap: (value) {setState(() {_currentIndex = value;});},items: const [BottomNavigationBarItem(icon: Icon(Icons.home),label: 'Home',),// ...],),

效果三

显示图标和文字,设置背景
在这里插入图片描述
type: BottomNavigationBarType.fixed必须与backgroundColor配合使用,背景才生效

	bottomNavigationBar: BottomNavigationBar(selectedItemColor: Colors.red, // 选中时unselectedItemColor: Colors.black, // 未选中type: BottomNavigationBarType.fixed,  // 固定backgroundColor: Colors.amber,  // 背景色currentIndex: _currentIndex,onTap: (value) {setState(() {_currentIndex = value;});},items: const [BottomNavigationBarItem(icon: Icon(Icons.home),label: 'Home',),// ...],),

完整示例

class PageWidget extends StatefulWidget {const PageWidget({super.key});State<PageWidget> createState() => _PageWidgetState();
}class _PageWidgetState extends State<PageWidget> {int _currentIndex = 0;Widget _getPage(index) {final List<Widget> _pages = <Widget>[Container(color: Colors.red,child: ElevatedButton(onPressed: () {Navigator.pushNamed(context, '/user-page');},child: const Text('User Page'),)),Container(color: Colors.green,),Container(color: Colors.blue,),Container(color: Colors.yellow,),];return _pages[index];}Widget build(BuildContext context) {return Scaffold(appBar: AppBar(title: const Text('Page Widget'),),bottomNavigationBar: BottomNavigationBar(backgroundColor: Colors.amber,type: BottomNavigationBarType.fixed,// showSelectedLabels: true,// showUnselectedLabels: true,selectedItemColor: Colors.red,unselectedItemColor: Colors.black,currentIndex: _currentIndex,onTap: (value) {setState(() {_currentIndex = value;});},items: const [BottomNavigationBarItem(icon: Icon(Icons.home),label: 'Home',),BottomNavigationBarItem(icon: Icon(Icons.business),label: 'Business',),BottomNavigationBarItem(icon: Icon(Icons.school),label: 'School',),BottomNavigationBarItem(icon: Icon(Icons.account_circle),label: 'User',),],),body: _getPage(_currentIndex),);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/694030.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工业网关的功能和优势,以及如何选择合适的工业网关-天拓四方

工业网关是连接各种工业设备和系统的通信设备&#xff0c;可以实现不同设备和系统之间的数据交换和通信。它可以作为一个中心节点&#xff0c;将各种工业设备连接起来&#xff0c;形成一个统一的通信网络&#xff0c;从而实现设备的远程监控、数据采集、分析和控制等功能。在工…

Python 文件处理指南:打开、读取、写入、追加、创建和删除文件

文件处理是任何Web应用程序的重要部分。Python有多个用于创建、读取、更新和删除文件的函数。 文件处理 在Python中处理文件的关键函数是open()函数。open()函数接受两个参数&#xff1a;文件名和模式。 有四种不同的方法&#xff08;模式&#xff09;可以打开文件&#xff1…

抖音小店新手应该怎么做?4个必须掌握的运营步骤,助你快速入门

大家好&#xff0c;我是电商花花。 很多新手在刚开始接触电商&#xff0c;接触抖音小店的时候都会感到迷茫吗&#xff0c;不知所措&#xff0c;新店刚开始都是从没有流量&#xff0c;没有销量&#xff0c;没有订单走过来的&#xff0c;我们也是。 新手做店都是需要方法&#…

wpf grid 列之间存在间隙

上图为grid的两列布局&#xff0c;中间的白线实际为两列的间隙&#xff0c;BorderThickness"0" 并不能消除 解决方法&#xff1a; <Grid RenderOptions.EdgeMode"Aliased"> # 在grid上添加属性

二分图模型即状态整理

二分图首先是个无向图。 主要有以下几类问题&#xff1a; 1.二分图&#xff0c;不存在奇数环&#xff0c;染色法不存在矛盾 2.匈牙利算法&#xff0c;匹配&#xff0c;最大匹配&#xff0c;匹配点&#xff0c;增广路径 3.最小点覆盖&#xff0c;最大独立集&#xff0c;最小路径…

在VS里使用C#制作窗口应用

新建项目 创建项目的时候搜索net&#xff0c;选择这个。 打开应该是这样 第一个控件 选择公共控件 - PictureBox - 拖入Form 在Image处选择上传本地资源&#xff0c;建议上传一个小一点的图片。 修改一下尺寸。 ctrls 保存 从“属性”切换到“事件” 双击Click事件…

kubernetes日志收集 fluent-operator 动态索引名的实现

文章目录 按照服务名区分索引名1.修改fluent-operator&#xff0c;让其支持logstash_prefix_key2.让它能获取app name作为服务名3. 拼接索引名4. 应用变更 发自个人博客&#xff1a; https://uublog.com/article/20230510/kubernetes-fluent-operator-dynamic-index-name/ 日志…

【银河商学】大蓝短视频学习01——定位,定江山

【银河商学】大蓝短视频学习01 定位,定江山一、 变现定位抖音变现的五大模式知识付费直播短视频带货星图广告实体引流招商加盟二、赛道定位赛道选择- 可以多个,有主赛道,有副赛道1. 资源2. 能力3. 兴趣爱好定位,定江山 变现定位——钱则呢么转赛道定位——内容方向则呢么定…

【Jenkins+Gitlab自动化部署配置】

【JenkinsGitlab自动化部署配置】 以下为整理当初参照的博客 阿里云云服务器 ECS 手动搭建GitLab避坑教程 https://blog.csdn.net/Tanasha114/article/details/121602478博客文中的镜像源地址已换 https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/Gitlab忘记root用…

DBSCAN密度聚类介绍 样本点 样本集合 半径 邻域 核心对象 边界点 密度直达 密度可达 密度相连

DBSCAN密度聚类介绍 样本点 样本集合 半径 邻域 核心对象 边界点 密度直达 密度可达 密度相连 简介概念定义原理DBSCAN的优点DBSCAN的缺点小尝试制作不易&#xff0c;感谢三连&#xff0c;谢谢啦 简介 DBSCAN&#xff08;Density-Based Spatial Clustering of Applications wi…

【算法】动态规划1,最小花费爬楼梯,解码方法

一、动态规划简介 动态规划 , 英文名称 Dynamic Programming , 简称 DP , 不是具体的某种算法 , 是一种算法思想 ; 动态规划 , 没有具体的步骤 , 只有一个核心思想 ; 动态规划 的 核心思想 是 由大化小 , 大规模问题 使用 小规模问题 计算结果 解决 , 类似于 分治算法 ; 二、…

srs集群下行edge处理逻辑

官方关于源站集群的介绍&#xff1a; Origin Cluster | SRS 下行边缘是指观众端从边缘edge拉流&#xff0c;边缘edge回源到源站origin节点拉流&#xff0c;然后再 把流转给客户端 边缘处理类SrsPlayEdge 当服务器收到播放请求时&#xff0c;创建对应的consumer消费者。在创…

C#_字段 属性 常量与只读

字段(旧称成员变量) 字段定义在类中&#xff08;定义在函数等代码体中的变量称为局部变量&#xff09;实例字段与该对象关联&#xff08;类实例化之后才可调用&#xff09;静态字段与该类型关联&#xff08;为该类型的特征&#xff0c;可直接调用&#xff0c;无需具体至对象&am…

Docker后台启动镜像,如何查看日志信息

执行 docker run -d -p 9090:8080 core-backend-image 命令后&#xff0c;Docker 会在后台运行一个新的容器实例&#xff0c;并映射宿主机的 9090 端口到容器的 8080 端口。要查看启动的容器日志&#xff0c;您需要先获取容器的 ID 或名称&#xff0c;然后使用 docker logs 命令…

令牌颁发与管理服务

技术背景 在分布式系统中,令牌(Token)被广泛应用于身份认证成功后对系统的访问控制。在本文中,我们实现了一个简单的令牌颁发与管理服务,其中包含访问令牌(AccessToken)和刷新令牌(RefreshToken)两种类型的令牌。 功能需求 颁发刷新令牌和访问令牌验证和管理访问令牌…

Linux系统之iptables应用SNAT与DNAT

一、SNAT&#xff1a; 1.应用环境 局域网主机共享单个公网IP地址接入Internet &#xff08;私有IP不能在Internet中正常路由&#xff09; 2.SNAT原理 源地址转换&#xff0c;根据指定条件修改数据包的源IP地址&#xff0c;通常被叫做源映谢数据包从内网发送到公网时&#x…

CDH 6.x版本 HBase基础调优参数

参数默认值调优值参数解释hbase.regionserver.handler.count30120指定了每个RegionServer处理请求的最大线程数hbase.regionserver.metahandler.count30120指定了在RegionServer中处理Meta表的请求数量hbase.client.retries.number1015HBase客户端重试操作的最大次数hbase.hsto…

Java中的Enum

Enum是一个特殊的类 Java 中的枚举类型&#xff08;enum&#xff09;实际上是一种特殊的类。enum编译后是一个特殊的类&#xff08;有些类似单例模式&#xff09;这些实例在声明时就被创建&#xff0c;并在整个应用程序的生命周期中只存在一个实例。 enum 用于定义包含固定数量…

Fiddler与wireshark使用

Fiddler解决三个问题 1、SSL证书打勾&#xff0c;解析https请求 2、响应回来乱码&#xff0c;不是中文 3、想及时中止一下&#xff0c;查看实时的日志 4、搜索对应的关键字 问题1解决方案&#xff1a; 标签栏Tools下 找到https&#xff0c;全部打勾 Actions里面 第一个 t…

项目的一些难点

1.不用redis?分布式锁&#xff0c;如何防止用户重复点击&#xff1f; 1.乐观锁 乐观锁是一种在数据库层面上避免并发冲突的机制。它通常通过在数据库记录中添加一个版本号&#xff08;或时间戳&#xff09;来实现。每次更新记录时&#xff0c;都会检查版本号是否与数据库中的…