在 Flutter 中使用 NavigationRail 和 BottomNavigationBar “作者:坚果 华为云享专家,InfoQ签约作者,阿里云专家博主,51CTO博客首席体验官,开源项目GVA...本文将向您展示如何使用NavigationRail和BottomNavigationBar在 Flutter 中创建自适应布局。我们将浏览一下这个概念,然后通过一个完整的例子来在实践中应用这个概念。...BottomNavigationBar小部件用于创建非常适合智能手机的底部标签栏。它由多个选项卡组成,让用户可以轻松地在视图之间导航。...我们可以使用NavigationRail和BottomNavigationBar来构建现代自适应布局。...类 (flutter.dev) BottomNavigationBar 类(flutter.dev) 后记 您已经学习了一种使用 NavigationRail 和 BottomNavigationBar
底部导航栏选中状态切换代码示例 五、BottomNavigationBar 底部导航栏切换选项卡界面 六、 相关资源 一、BottomNavigationBar 组件 ---- BottomNavigationBar...// 回调 StatefulWidget 组件的 setState 设置状态的方法 , 修改当前选中索引 // 之后 BottomNavigationBar 组件会自动更新当前选中的选项卡...修改当前选中索引 // 之后 BottomNavigationBar 组件会自动更新当前选中的选项卡 setState(() {...底部导航栏切换选项卡界面 ---- BottomNavigationBar 底部导航栏的 onTap 回调方法中 , 设置当前选中的选项卡索引 , 根据该索引值修改 Scaffold 组件的 body...对应组件 , 如果选项卡索引为 0 , 显示组件 0 , 如果选项卡索引为 1 , 那么显示组件 1 ; 设置 body 字段值时 , 根据当前的被中选的选项卡索引值 , 判断应该显示哪个组件 ; body
修改当前选中索引 // 之后 BottomNavigationBar 组件会自动更新当前选中的选项卡 setState(() {...修改当前选中索引 // 之后 BottomNavigationBar 组件会自动更新当前选中的选项卡 setState(() {...: [ Container( // 对应底部导航栏设置选项卡 // 设置容器的装饰器 , BoxDecoration 是最常用的装饰器..., ) : Container( // 对应底部导航栏设置选项卡 // 设置容器的装饰器 , BoxDecoration 是最常用的装饰器...中文网 ( 非官方 , 翻译的很好 ) : https://flutterchina.club/ , http://flutter.axuer.com/docs/ Flutter 相关问题 : https
修改当前选中索引 // 之后 BottomNavigationBar 组件会自动更新当前选中的选项卡 setState(() {...: [ Container( // 对应底部导航栏设置选项卡 // 设置容器的装饰器 , BoxDecoration 是最常用的装饰器..., ) : Container( // 对应底部导航栏设置选项卡 // 设置容器的装饰器 , BoxDecoration 是最常用的装饰器...修改当前选中索引 // 之后 BottomNavigationBar 组件会自动更新当前选中的选项卡 setState(() {..., ) : Container( // 对应底部导航栏设置选项卡 // 设置容器的装饰器 , BoxDecoration 是最常用的装饰器
最近我研究了一下Flutter,但是在使用Navigator的时候遇到了一个很头痛的问题,就是当我们去来回切换导航按钮时,Flutter会重新build,从而导致控件重新Build,从而会失去浏览历史。...这是一个有BottomNavigationBar的app: ? 1_yptwp6Ahe_-yhrLTg-NqwQ.png 我们想要的是每个选项卡都有自己的Navigation堆栈。...长话短说: 创建一个带Scaffold和BottomNavigationBar的app。 在每一个Scaffold中,为每个选项卡创建一个包含一个子项的Stack。...BottomNavigationBar绘制具有正确颜色的三个选项卡。...这将Offstage控件与子TabNavigator一起使用。 如果正在呈现的选项卡与当前选项卡不匹配,则offstage属性为true。
= null), super(key: key, child: child); } ClipRRect 组件使用方法 : 设置圆角 : borderRadius 字段设置四个顶点的圆角半径...设置 // items 可以设置多个 BottomNavigationBarItem bottomNavigationBar: BottomNavigationBar(...修改当前选中索引 // 之后 BottomNavigationBar 组件会自动更新当前选中的选项卡 setState(() {...: [ Container( // 对应底部导航栏设置选项卡 // 设置容器的装饰器 , BoxDecoration 是最常用的装饰器..., ) : Container( // 对应底部导航栏设置选项卡 // 设置容器的装饰器 , BoxDecoration 是最常用的装饰器
如何使用: 通常, 「ConvexAppBar」 可以通过设置它的 bottomNavigationBar 来与脚手架一起工作。...ConvexAppBar具有两个构造函数,ConvexAppBar()将使用默认样式来简化选项卡的创建。...」 的一些属性: 「fixed」 (副标题图标停留在中心) 「fixedCircle」 (相同,但在固定图标的所有边上都有一个白色的圆圈) 「react」 (上标图标取代点击另一个图标) 「reactCircle...」 (与上标图标中的白色圆圈相同) 「textIn」 (选定的离子出现相应的标题) 「titled」 (未选择的图标是显示其标题的单个图标) 「flip」 (点击图标显示一个 flip 动画) 「custom...使用 scaffold 属性,我们使用 bottomNavigationBar。
文章目录 一、Flutter 布局相关的组件简介 二、Row 和 Column 组件 三、SizedBox 组件 四、ClipOval 组件 五、 完整代码示例 六、 相关资源 一、Flutter 布局相关的组件简介...设置 // items 可以设置多个 BottomNavigationBarItem bottomNavigationBar: BottomNavigationBar(...修改当前选中索引 // 之后 BottomNavigationBar 组件会自动更新当前选中的选项卡 setState(() {...: [ Container( // 对应底部导航栏设置选项卡 // 设置容器的装饰器 , BoxDecoration 是最常用的装饰器..., ) : Container( // 对应底部导航栏设置选项卡 // 设置容器的装饰器 , BoxDecoration 是最常用的装饰器
; 一般使用 Container 封装复杂的组件 ; 代码示例 : 下面的代码就是 PageView 中设置了三个滑动切换的组件 , 都是 Container 组件 , 每个 Container 都设置的居中方式...设置 // items 可以设置多个 BottomNavigationBarItem bottomNavigationBar: BottomNavigationBar(...修改当前选中索引 // 之后 BottomNavigationBar 组件会自动更新当前选中的选项卡 setState(() {...: [ Container( // 对应底部导航栏设置选项卡 // 设置容器的装饰器 , BoxDecoration 是最常用的装饰器..., ) : Container( // 对应底部导航栏设置选项卡 // 设置容器的装饰器 , BoxDecoration 是最常用的装饰器
设置 // items 可以设置多个 BottomNavigationBarItem bottomNavigationBar: BottomNavigationBar(...修改当前选中索引 // 之后 BottomNavigationBar 组件会自动更新当前选中的选项卡 setState(() {...: [ Container( // 对应底部导航栏设置选项卡 // 设置容器的装饰器 , BoxDecoration 是最常用的装饰器..., ) : Container( // 对应底部导航栏设置选项卡 // 设置容器的装饰器 , BoxDecoration 是最常用的装饰器...中文网 ( 非官方 , 翻译的很好 ) : https://flutterchina.club/ , http://flutter.axuer.com/docs/ Flutter 相关问题 : https
我们将逐行讲解代码,帮助大家理解 Flutter 的结构、状态管理以及组件之间的交互。 1....title 属性定义了应用的标题,通常用于显示在任务切换器中。 theme 属性设置了应用的主题,这里我们使用蓝色调(primarySwatch 为 Colors.blue)。...当用户点击某个导航项时,这个方法会被调用,并通过 setState 方法更新 _selectedIndex,触发界面重建,从而显示新选中的页面。 6....根据 _selectedIndex 的值,应用会渲染不同的页面内容。 底部导航栏 bottomNavigationBar 属性定义了底部导航栏的结构。...该示例展示了 Flutter 的状态管理机制、组件结构以及如何使用 Material Design 组件构建用户界面。 希望本文能够帮助您更好地理解 Flutter 开发!
Expanded 组件的情况 ; 第二个组件是 Row 中使用了 Expanded 组件的情况 ; 三、完整代码示例 ---- 完整代码示例 : import 'package:flutter/material.dart...设置 // items 可以设置多个 BottomNavigationBarItem bottomNavigationBar: BottomNavigationBar(...修改当前选中索引 // 之后 BottomNavigationBar 组件会自动更新当前选中的选项卡 setState(() {...: [ Container( // 对应底部导航栏设置选项卡 // 设置容器的装饰器 , BoxDecoration 是最常用的装饰器..., ) : Container( // 对应底部导航栏设置选项卡 // 设置容器的装饰器 , BoxDecoration 是最常用的装饰器
( body: _currentBody, bottomNavigationBar: BottomNavigationBar( items: 使用,别问我为什么如此命名,问就是源代码中就是如此命名的。...如何移除debug模式下右上角“DEBUG”标识 MaterialApp( debugShowCheckedModeBanner: false ) 如何使用16进制的颜色值 下面的用法是无法显示颜色的...dart 2、Window执行如下命令: taskkill /F /IM dart.exe 解决办法二: 删除flutter SDK的目录下/bin/cache/lockfile文件。...设置当前控件大小为父控件大小的百分比 1、使用FractionallySizedBox控件。
BottomNavigationBar和其他控件的配合是完全解耦的,日常使用分为BottomNavigationBar+ViewPager 、BottomNavigationBar+FrameLayput...1 使用 BottomNavigationBar+ViewPager 直接上代码 <android.support.v4.view.ViewPager android:id="@+id...点击的时候没有水波纹效果 background_style_ripple:点击的时候有水波纹效果 3.颜色Colors 属性:bnbActiveColor, bnbInactiveColor...0dp,默认为8dp 6.自定义选项图标BottomNavigationItem Icon Customisations 可以设置选项,选中和未选中使用不同的图标 //setInactiveIcon....setSizeInPixels(5,5) //宽高,px .setAnimationDuration(200) //隐藏和展示的动画速度,单位毫秒,和setHideOnSelect一起使用
虽然父项ShoppingListItem在重建时创建了一个新实例,但该操作开销很小,因为Flutter框架会将新构建的widget与先前构建的widget进行比较,并仅将差异部分应用于底层RenderObject...当这个widget的父级重建时,父级将创建一个新的ShoppingList实例,但是Flutter框架将重用已经在树中的_ShoppingListState实例,而不是再次调用createState创建一个新的...dispose典型的实现是直接调用super.dispose。 Key 主要文章: Key_ 您可以使用key来控制框架将在widget重建时与哪些其他widget匹配。...默认情况下,框架根据它们的runtimeType和它们的显示顺序来匹配。 使用key时,框架要求两个widget具有相同的key和runtimeType。...此外,语义上同步条目意味着在有状态子widget中,保留的状态将附加到相同的语义条目上,而不是附加到相同数字位置上的条目。
BottomNavigationBar和其他控件的配合是完全解耦的,日常使用分为BottomNavigationBar+ViewPager 、BottomNavigationBar+FrameLayput...1 使用 BottomNavigationBar+ViewPager 直接上代码 <android.support.v4.view.ViewPager android:id="@+...点击的时候没有水波纹效果 background_style_ripple:点击的时候有水波纹效果 3.颜色Colors 属性:bnbActiveColor, bnbInactiveColor...0dp,默认为8dp 6.自定义选项图标BottomNavigationItem Icon Customisations 可以设置选项,选中和未选中使用不同的图标 //setInactiveIcon....setSizeInPixels(5,5) //宽高,px .setAnimationDuration(200) //隐藏和展示的动画速度,单位毫秒,和setHideOnSelect一起使用
对于没有相关基础的人,在正式学习App的UI之前,建议先了解Material Design相关的知识 关于Material Design设计风格的资料 MaterialApp MaterialApp代表使用...一个完整的Flutter项目是由这个主组件开始的。 MaterialApp属性详解 属性 类型 简述 home Widget 主页。...如果为null则使用当前系统区域 localizationsDelegates Iterable> 本地化委托,用于更改Widget默认的提示语...底部通常为选项卡TabBar。...Flutter全栈式开发之Dart 编程指南 [二维码] Flutter 全栈式开发指南 快速上手篇直接观看 [format,png]
在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。同时它也是构建未来的Google Fuchsia应用的主要方式。...如何入门Flutter 1.了解Android/IOS基础知识.包括平台特性、项目结构等. 2.了解Dart基础语法知识.可点击Dart中文网进行学习. 3.学习Flutter基础知识.包括组件使用、包管理...Flutter学习指南 为了能够方便大家快速学习Flutter, 我简单写了一个Flutter学习指南App,包含众多组件和插件的使用, 是学习和体验flutter组件的小Demo....标题)、BottomNavigationBar(底部导航栏)、 Button(按钮)、 CardView(卡片)、Containter(容器)、 Control(控制开关)、 CustomWidget(...、Gesture(手势)、Image(图片)、Input(输入框)、Layout(布局)、 Notification(冒泡通知)、Progress(进度条)、ScrollView(列表滚动)、Tab(选项卡
实现Material Design指南的视觉,行为和运动丰富的小部件。 应用程序结构和导航 按钮 输入和选择 对话框,弹出框和面板 信息显示 布局 查看Flutter窗口小部件目录中的更多小部件。...对于更大的屏幕,侧面导航可能更适合。 底部导航栏通常与Scaffold结合使用,在Scaffold.bottomNavigationBar参数中提供它。 底部导航栏的type会更改其条目的显示方式。...如果选择的项目非空,则使用fixedColor呈现所选项目,否则将使用主题的ThemeData.primaryColor。...所有项目均以白色呈现,并且导航栏的背景色与所选项目的BottomNavigationBarItem.backgroundColor相同。...TabBarView 显示与当前选定选项卡相对应的部件的页面视图。 通常与TabBar结合使用。 ?
领取专属 10元无门槛券
手把手带您无忧上云