首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Flutter】底部导航栏实现 ( BottomNavigationBar 底部导航栏 | BottomNavigationBarItem 导航栏条目 | PageView )

底部导航栏组件 , 该底部导航栏的 item 设置图标与文字组件数组 , onTap 字段设置 ValueChanged 点击回调方法 , 通过该方法设置当前选择的页面索引值 ; Scaffold...组件的主题 body 字段设置 PageView 组件 , 该组件主要设置 PageController?..., 同一时间只显示一个 ; 三、BottomNavigationBar 底部导航栏 ---- 通过 Scaffold 组件的 bottomNavigationBar 字段 , 可以设置底部导航栏菜单...onTap 字段设置点击事件 , 传入的参数是点击的底部导航栏索引值 ; BottomNavigationBar 构造函数 : BottomNavigationBar({ Key?...官网 : https://flutter.dev/ Flutter 插件下载地址 : https://pub.dev/packages Flutter 开发文档 : https://flutter.cn

5.7K50

FlutterFlutter 拍照示例 ( 浮动按钮及点击事件 | 底部显示按钮组件 | 手势检测器组件 | 拍照并获取当前拍摄照片 | 从相册中选择图片 )

文章目录 一、浮动按钮及点击事件 二、底部显示按钮组件 三、手势检测器组件 四、image_picker 完整代码示例 一、浮动按钮及点击事件 ---- 一般使用 Scaffold 组件作为界面的根布局组件...appBar: , // 设置页面主体元素组件 body: , // 创建浮动按钮 FloatingActionButton 组件 , 并设置给 floatingActionButton 字段...of callbacks that have no arguments and return no data. typedef VoidCallback = void Function(); 二、底部显示按钮组件...---- 调用 showModalBottomSheet 方法 , 即可弹出底部按钮组件 , 该组件由开发者定义 , 可以是任何组件 , 如 Column ; 这里在底部显示的是一个 Container...transitionAnimationController, }) 三、手势检测器组件 ---- 这里按钮点击使用 GestureDetector 组件 , 监听器 onTap 方法 , 用户点击时 ,

1.5K30
您找到你想要的搜索结果了吗?
是的
没有找到

Flutter】StatefulWidget 组件 ( 底部导航栏组件 | BottomNavigationBar 组件 | BottomNavigationBarItem 组件 | 选项卡切换 )

, 可以给该 items 字段设置多个 BottomNavigationBarItem 组件 ; BottomNavigationBarItem 组件常用设置 : 默认状态图标 : icon ; 图标下显示的标题...回调方法中 , 设置当前选中的选项卡索引 , 根据该索引值修改 Scaffold 组件的 body 对应组件 , 如果选项卡索引为 0 , 显示组件 0 , 如果选项卡索引为 1 , 那么显示组件 1...; 设置 body 字段值时 , 根据当前的被中选的选项卡索引值 , 判断应该显示哪个组件 ; body: _currentSelectedIndex == 0 ?...: https://flutter.cn/docs ( 强烈推荐 ) 官方 GitHub 地址 : https://github.com/flutter Flutter 中文社区 : https://...flutter.cn/ Flutter 实用教程 : https://flutter.cn/docs/cookbook Flutter CodeLab : https://codelabs.flutter-io.cn

2.2K00

flutter 跨平台适配指南

下面分析了导航栏和侧栏的优势与劣势,并提供了何时应该选择它们的建议。 导航栏的优势与劣势: 优势: 明确的导航:导航栏位于屏幕顶部,提供了明确的导航入口,用户可以直接点击按钮或标签切换页面。...导航深度限制:对于包含多层次导航结构的应用,使用导航栏可能会受到导航深度的限制,难以显示所有的层级。...导航层次浅:当应用的导航层次较浅,不需要多层嵌套的页面结构时,导航栏是一个合适的选择。...在 Flutter 中,你可以使用 Drawer 组件来实现侧栏。Drawer 通常位于 Scaffold 的 drawer 属性中,用于显示应用的侧边栏菜单。...附录 Flutter 中常用的导航栏和侧栏组件 导航栏组件: AppBar:用于在屏幕顶部显示应用的标题和操作按钮。

14010

Flutter】底部导航栏页面框架 ( BottomNavigationBar 底部导航栏 | PageView 滑动页面 | 底部导航与滑动页面关联操作 )

设置当前索引 : BottomNavigationBar的 currentIndex 属性设置当前底部导航栏的选中索引 , 为其设置一个变量 , 改变该变量值后 , 通过 setState 方法更新 UI 显示...; 设置点击方法 : BottomNavigationBar 的 onTap 属性设置点击方法 , 传入 index 索引 , 该索引值是被点击的按钮索引 , 在该方法中主要操作当前的 currentIndex..., 设置给 Scaffold 的 body 字段 , 主要设置以下三个参数 ; 控制器 : 在 PageView 的 controller 参数设置 , PageController 类型 , 主要用于控制...参数设置滑动回调事件 , 传入 index 索引值 , 在该事件中 , 调用 setState 方法 , 更新底部导航栏 BottomNavigationBar 的当前索引值 , 并更新 UI 界面 ; 显示组件...实现相应的界面跳转 ; BottomNavigationBar( /// 当前选中的导航索引 currentIndex: _currentIndex, /// 底部导航栏的点击方法 onTap

4.1K20

Flutter】Animation 动画 ( AnimatedBuilder 动画使用流程 | 创建动画控制器 | 创建动画 | 创建动画作用的组件 | 关联动画与组件 | 动画执行 )

Animation 动画 和 Widget 组件分离 ; AnimatedBuilder 可以构建通用 Widget , AnimatedBuilder 可以用于拆分动画 与 组件 ; 动画开发中需要分离的功能 : 显示动画作用的组件...AnimatedBuilder 组件的组件 , 其中将 Animation 动画 和 Widget 组件都设置在该 AnimatedBuilder 中 , Animation 动画设置在 animation 字段中..., child 字段需要设置到 build 字段中 , 设置的方法如下 : AnimatedBuilder( animation: animation,...), child: child, ) ], ); } } 五、动画运行 ---- 监听 GestureDetector 的 onTap...color: Colors.green, height: 50, child: Text( // 显示文本

1.4K10

Flutter实战 | 从 0 搭建「网易云音乐」APP(九、搜索页面、底部播放控制栏)

、发现页)3.Flutter实战 | 从 0 搭建「网易云音乐」APP(三、每日推荐、推荐歌单)4.Flutter实战 | 从 0 搭建「网易云音乐」APP(四、排行榜、播放页面)5.Flutter实战...这周开始恢复代码与文章的更新,最近收到很多童鞋反馈说比较卡, 我建议加我个人微信「17610912320」,来探讨一下是哪个地方,具体在哪里卡。 也欢迎 PR,让我们一起为这个项目添砖加瓦! 1....搜索页 话不多说,接着就来我们的搜索页,先看一下图,然后梳理一下需求: 1.历史记录(无历史记录的时候不显示)2.热搜榜 1....然后是 UI,不知道有没有童鞋记得我以前写过一篇文章:Flutter Wrap & Chip。 ? 在这里完全就能用得上,而且不需要那么多花里胡哨的,只有一个文字就行了。...我们在编写播放页面的时候就已经把关于歌曲播放功能的 model:PlaySongsModel 给写好了,所有的功能都在这里,所以我们想要写一个「播放控制栏」真的是分分钟搞定。

2.5K10

Flutter 改善套娃地狱问题(仿喜马拉雅PC页面举例)

建议各位彦祖,下载下window安装包,安装体验下;MacOS的于晏们,你们可以看看web展示效果。 咱们马上来看看怎么搞规范代码吧!复杂的模块,让你的代码也能高度可维护!...Flutter的Widget 然后再结合Flutter中那些众多的系统widget,系统那些Widget基本都属于功能性的Widget,需要定义巨量的字段传值 这样的好处,就是能够非常颗粒的去控制需要的字段...通用的模块开发,关于数据源输入,就需要考虑一些比较通用的数据格式,例如只需要一个list数据,就不要搞一个实体,只需要一个字段,就不需要搞一个list等等。。。...主模块代码:按照下面的封装,基本是把View层和Action层做了一个结合了 所有业务Widget的入口,可快速定位到需要修改的业务Widget 所有的事件交互入口,一眼可见,这样能快速定位相应的业务...新的事物发展,必然会迎来相应的阻力 这里假设一种场景: 你已经写了俩三年Flutter了,各种控件,框架玩的牛的飞起 然后,你听说:又来了一种神奇的,跨时代的前端框架,甚至能无缝调用所有平台的底层硬件api

1.6K71

FlutterFlutter 照片墙 ( Center 组件 | Wrap 组件 | ClipRRect 组件 | Stack 组件 | Positioned 组件 | 按钮组合组件 )

常用于修改组件透明度 ; ClipOval : 裁剪布局组件 , 可以将布局裁剪成圆形 ; ClipRRect : 裁剪布局组件 , 可以将布局裁剪成方形 ; PhysicalModel : 将布局显示成不同的形状...double 类型 ), children: [ 设置若干子组件 ] ) 运行效果 : Center 组件填充整个屏幕 , Wrap 组件是 Center 的子组件 , 在中心显示...- Stack 组件是帧布局组件 , 在其 children 字段设置一个 Widget 集合 ; 在 Stack 组件内部 , 可以使用 Positioned 组件指定某个子组件在 Stack 布局组件中的位置..., 在中间使用 Center 组件放置一个 Icon 白色图标 , 就组成了圆形的关闭按钮 ; 关闭按钮代码示例 : // 手势检测器组件 GestureDetector( // 点击事件 onTap.../ 手势检测器组件 child: GestureDetector( // 点击事件 onTap

8.4K20

Flutter 中创建漂亮的底部导航栏

来重载一些内部样式 RTL布局支持 属性: 下面是 「*Convex_Bottom_Bar*」 的一些属性: 「fixed」 (副标题图标停留在中心) 「fixedCircle」 (相同,但在固定图标的所有边上都有一个白色的圆圈...) 「react」 (上标图标取代点击另一个图标) 「reactCircle」 (与上标图标中的白色圆圈相同) 「textIn」 (选定的离子出现相应的标题) 「titled」 (未选择的图标是显示其标题的单个图标...) 「flip」 (点击图标显示一个 flip 动画) 「custom」 (使用 ConvexBottomAppBar 构建器自定义预定义的参数) 「height」 (grabbing the appbar...定义一个名为 pageList的列表,在这个列表中我们传递要添加到 bootom 导航栏中的所有页面。...在这里,我们创建 ConvexAppBar ()并传递 Items、 initialActiveIndex 和 onTap。在条目中,我们通过所有的屏幕,我们希望在我们的应用程序中显示

7.9K10

Flutter实现页面切换后保持原页面状态的3种方法

: onTap ), body: bodyList[currentIndex] ); } } 其中的三个子页面结构相同,均显示一个计数器和一个加号按钮,以first_page.dart为例:...现在我们先来介绍另外两种方式: ① 使用IndexedStack实现 IndexedStack继承自Stack,它的作用是显示第index个child,其它child在页面上是不可见的,但所有child...② 使用Offstage实现 Offstage的作用十分简单,通过一个参数来控制child是否显示,所以我们同样可以组合使用Offstage来实现该需求,其实现原理与IndexedStack类似 /...( 这里的细节并不是因为我直接把子页实例化放在bodyList里…<),如果在子页State的initState中打印日志,可以在终端看到一次性输出了所有子页的日志。...更新 前面在底部导航介绍了使用IndexedStack和Offstage两种方式实现保持页面状态,但它们的缺点在于第一次加载时便实例化了所有的子页面State。

2.5K30
领券