Flutter——最详细(NavigationBar)使用教程

NavigationBar简介

Material 3 导航栏组件! 导航栏提供了一种持久且便捷的方式来在应用程序的主要目的地之间进行切换。

使用场景:

底部菜单栏模块

属性作用
onDestinationSelected选择索引回调监听器
selectedIndex目前选定目的地的索引
destinations存放菜单按钮
backgroundColor导航栏背景色
elevation海拔高度
height导航栏高度
labelBehavior是否展示菜单栏底部文字
shadowColor阴影颜色
animationDuration胶囊动画显示时长
indicatorShape选中菜单背景圆角或者边框样式
indicatorColor选中菜单背景色

alwaysShow:图标与文本同时显示;

在这里插入图片描述

alwaysHide:文本同时隐藏;

在这里插入图片描述

onlyShowSelected:选中当前索引的菜单文本同时显示;

在这里插入图片描述

backgroundColor : 导航栏背景色 绿色

在这里插入图片描述

indicatorShape: 按钮背景样式

在这里插入图片描述

代码块:自行运行查看

import 'package:flutter/material.dart';class NavigationBars extends StatefulWidget {const NavigationBars({super.key});@overrideState<NavigationBars> createState() => _NavigationBarsState();
}class _NavigationBarsState extends State<NavigationBars> {int currentPageIndex = 0;NavigationDestinationLabelBehavior labelBehavior =NavigationDestinationLabelBehavior.alwaysShow;@overrideWidget build(BuildContext context) {return Scaffold(bottomNavigationBar: NavigationBar(labelBehavior: labelBehavior,selectedIndex: currentPageIndex,backgroundColor: Colors.green,indicatorColor: Colors.red,indicatorShape:  RoundedRectangleBorder(borderRadius: BorderRadius.circular(10.0),side: BorderSide(color: Colors.yellow, width: 2.0),),surfaceTintColor: Colors.yellow,// animationDuration: Duration(milliseconds: 2000),// shadowColor: Colors.black,height: 70,elevation: 1,onDestinationSelected: (int index) {setState(() {currentPageIndex = index;});},destinations: const <Widget>[NavigationDestination(tooltip: "",icon: Icon(Icons.explore),label: 'Explore',),NavigationDestination(icon: Icon(Icons.commute),label: 'Commute',),NavigationDestination(selectedIcon: Icon(Icons.bookmark),icon: Icon(Icons.bookmark_border),label: 'Saved',),],),body: Center(child: Column(mainAxisAlignment: MainAxisAlignment.center,children: <Widget>[Text('Label behavior: ${labelBehavior.name}'),const SizedBox(height: 10),OverflowBar(spacing: 10.0,children: <Widget>[ElevatedButton(onPressed: () {setState(() {labelBehavior =NavigationDestinationLabelBehavior.alwaysShow;});},child: const Text('alwaysShow'),),ElevatedButton(onPressed: () {setState(() {labelBehavior =NavigationDestinationLabelBehavior.onlyShowSelected;});},child: const Text('onlyShowSelected'),),ElevatedButton(onPressed: () {setState(() {labelBehavior =NavigationDestinationLabelBehavior.alwaysHide;});},child: const Text('alwaysHide'),),],),],),),);}
}

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

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

相关文章

26.Java 异常

异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的 要理解Java异常处理是如何工作的,你需要掌握以下三种类型的异常: 检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个…

WooCommerce企业级电子商务需要了解的事情

建立成功的企业业务变得比以往任何时候都容易得多。借助各种可用的平台&#xff0c;将您的想法付诸实践是绝对可行的。 “WooCommerce 是最知名的 WordPress 网站电子商务平台之一。” 它于 2011 年推出&#xff0c;自此受到大型和小型企业的欢迎。它的流行主要归功于其各种免费…

Mysql教程(一):Mysql数据模型和SQL语法分析

Mysql教程&#xff08;一&#xff09;&#xff1a;Mysql数据模型和SQL语法分析 1、Mysql数据模型 1.1 关系型数据库&#xff08;RDBMS&#xff09; 概念&#xff1a;建立在关系模型基础上&#xff0c;由多张相互连接的二维表组成的数据库。 特点&#xff1a; 使用表存储数…

【Matlab】智能优化算法_蚁群优化算法ACO

【Matlab】智能优化算法_蚁群优化算法ACO 1.背景介绍2.废话不多说&#xff0c;直接上代码3.文件结构4.详细代码及注释4.1 ACO.m4.2 createColony.m4.3 createGraph.m4.4 drawBestTour.m4.5 drawGraph.m4.6 drawPhromone.m4.7 ACO.mfitnessFunction.m4.8 rouletteWheel.m4.9 upd…

BIO、NIO、AIO之间有什么区别

一、简介 在计算机中&#xff0c;IO 传输数据有三种工作方式&#xff0c;分别是&#xff1a; BIO、NIO、AIO。 在讲解 BIO、NIO、AIO 之前&#xff0c;我们先来回顾一下这几个概念&#xff1a;同步与异步&#xff0c;阻塞与非阻塞。 同步与异步的区别 同步就是发起一个请求后…

day27 贪心算法

1.什么是贪心&#xff1f; 比如10张钞票&#xff0c;有1&#xff0c;5&#xff0c;20&#xff0c;100等面额&#xff0c;取五张&#xff0c;如何取得到数额最多的钱&#xff1f;每次取面额最大的那张钞票&#xff1b;就是每个阶段的局部最优&#xff1b;全局最优就是最后拿到的…

【天梯赛集训】7.17习题集

AC&#xff1a; 12 / 12 用时&#xff1a;2 h 21 min 没卡思路&#xff0c;卡了几个测试点。 7-1 输入输出整数 #include <iostream>using namespace std;int main() {int a;cin >> a;cout << a;return 0; } 7-2 调整数组使奇数全部都位于偶数前面其他数字顺…

VSCode LSP 语言服务器协议总结

为什么使用语言服务器协议&#xff1f; LSP(Language Server Protocol)语言服务器是一种特殊的 Visual Studio Code 扩展&#xff0c;可为许多编程语言提供编辑体验。使用语言服务器&#xff0c;您可以实现自动完成、错误检查&#xff08;诊断&#xff09;、跳转到定义以及VS …

二叉树(下)+Leetcode每日一题——“数据结构与算法”“对称二叉树”“另一棵树的子树”“二叉树的前中后序遍历”

各位CSDN的uu们你们好呀&#xff0c;今天小雅兰的内容仍然是二叉树和Leetcode每日一题&#xff0c;下面&#xff0c;就让我们进入二叉树的世界吧&#xff01;&#xff01;&#xff01; 这个题目需要重新定义一个函数&#xff0c;函数参数需要有左子树和右子树&#xff0c;题目所…

cesium的使用

cesium的使用 cesium的使用创建一个vue项目 vuevitecesium参数的使用常用点位标记删除动态渲染路线借助truf.js的算法进行渲染地块的实现topojson cesium的使用 1.下载或者安装cesium的插件 官方文档 下载下来后创建文件夹整个包引入 2.生成token 新的包应该有默认token如果没…

【idea】的一些使用指南

一、serializable自动生成id 1.打开File菜单&#xff0c;选择Settings选项 2.打开Editor->Inspections 3.在右边的搜索框中输入serialVersionUID关键字&#xff0c;出现以下选项&#xff0c;勾选"Serializable class without serialVersionUID"&#xff0c;然后别…

MySQL-概述-数据模型SQL简介

数据库&#xff1a;DataBase&#xff08;DB&#xff09;&#xff0c;是存储和管理数据的仓库数据库管理系统&#xff1a;DataBase Management System&#xff08;DBMS&#xff09;&#xff0c;操作和管理数据库的大型软件。SQL&#xff1a;Structured Query Language&#xff0…