Flutter BottomNavigationBar 组件】的更多相关文章

BottomNavigationBar 是底部导航条,可以让我们定义底部 Tab 切换,bottomNavigationBar是 Scaffold 组件的参数. BottomNavigationBar 常见的属性 属性名 说明 items List<BottomNavigationBarItem> 底 部 导 航 条按钮集合 iconSize icon currentIndex 默认选中第几个 onTap 选中变化回调函数 fixedColor 选中的颜色 type BottomNavigat…
BottomNavigationBar常用的属性: 属性名 说明 items List<BottomNavigationBarItem> 底部导航条按钮集合 iconSize icon currentIndex 默认选中第几个 onTap 选中变化回调函数 fixedColor 选中的颜色 type BottomNavigationBarType.fixed BottomNavigationBarType.shifting import 'package:flutter/material.da…
如需转载,请注明出处:Flutter学习笔记(15)--MaterialApp应用组件及routes路由详解 今天的内容是Scaffold脚手架.AppBar组件.BottomNavigationBar组件,通过这三个组件,能大体构建出一个app的主页面,顶导和底导. Scaffold(脚手架组件) Scaffold实现了基本的Material Design布局,只要是在Material Design中定义过的单个界面显示的布局控件元素,都可以使用Scaffold来绘制. Scaffold组件属…
效果: /**  * Flutter  BottomNavigationBar 自定义底部导航条.以及实现页面切换:  * BottomNavigationBar是底部导航条,可以让我们定义底部Tab切换,  * bottomNavigationBar是Scaffold组件的参数.  *BottomNavigationBar常见的属性:  items  List<BottomNavigationBaritem> 底部导航条按钮集合.  iconSize icon  currentIndex 默…
Flutter 父子组件传值 一父传子: 父中: void onButtonChange(val1,val2,val3){ print('============================子向父传值OK了==============='); print(val1); print(val2); print(val3); print('============================子向父传值OK了===============');} List list=[["A",&qu…
在开始之前,我们先写一个最简单的入口文件:     后面,都是在这个结构的基础上面完成的. 由于Container组件和Text组件都是写在body里面的,所以下面,先将body抽离成一个组件的形式. Container组件 在flutter里面Container组件是一个容器组件,类似于html中的div一样. 在Center组件里面添加Container组件,然后再添加Text组件,和上面的效果是一样的. Container.Text这些自定义组件的本质都是类,有很多可选的命名参数,在Con…
Flutter Inkwell使用详解 该文章属于[Flutter每周一组件]系列,其它组件可以查看该系列下的文章,该系列会不间断更新:所有组件的demo已经上传值Github: https://github.com/xj124456/flutter_widget_demo, 欢迎Star 使用场景 当需要给一个元素点击事件的时候,你可以用InkWell来包裹这个元素,它里面有常用交互事件和点击效果,可以简单实现想要的效果 预览 组件参数说明 const InkWell({ Key key, W…
该文章属于[Flutter每周一组件]系列,其它组件可以查看该系列下的文章,该系列会不间断更新:所有组件的demo已经上传值Github: https://github.com/xj124456/flutter_widget_demo 欢迎Star 博客:思否, 掘金, 知乎, 简书, 慕课, CSDN, 博客园, DX前端 公众号:DX前端框架知识库 联系我:公众号菜单点击联系我 使用场景 组件解释:固定高度的单个行,通常包含一些文本以及前导或尾随图标. 当需要给一个列表list的时候,你可以…
import 'package:flutter/material.dart'; import './pages/home_page.dart'; import './pages/book_page.dart'; import 'package:bottom_nav_bar_test/pages/movie_page.dart'; import 'package:bottom_nav_bar_test/pages/music_page.dart'; void main() => runApp(My…
如果你用过BottomNavigationBar.TabBar.还有Drawer,你就会发现,在切换页面之后,原来的页面状态就会丢失. 要是上一页有一个数据列表,很多数据,你滚动到了下头,切换页面后,想再看一下下头的数据,但是Flutter给你重回页面了... 这谁能顶得住啊. 看了一下解释,原来Flutter中为了节约内存不会保存widget的状态,widget都是临时变量. 不过还是有很多办法解决的,网上传言用 AutomaticKeepAliveClientMixin 配合 @overri…
实现一个应用基本的布局结构. 举个栗子: import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { // This widget is the root of your application. @override Widget build(BuildContext context) { return MaterialApp( them…
一个可滚动的列表组件 不管在哪,列表组件都尤为重要和常用. 首先来看个例子: import 'package:flutter/material.dart'; void main () => runApp(MyApp()); class MyApp extends StatelessWidget{ @override Widget build(BuildContext context){ return MaterialApp( title:'zengfp Flutter Demo', home:S…
一个组件它往往包含了一些常见的painting, positioning和sizing这样的小部件. Container相当于我们常用的div,在Flutter中用的非常多,现在来看看Container容器中的一些属性. 1.alignment 这个属性是针对容器中的child的对其方式.我们先做一个效果:建立一个Container容器,然后让容器里面的文字内容居中对齐. 具体代码如下: import 'package:flutter/material.dart'; void main() =>…
Android 中有BottomNavigationBar+Fragment切换 而在Flutter也有的BottomNavigationBar 效果图 底部有两种情况 底部导航栏的类型更改其项目的显示方式.如果未指定,则 当少于四个项时,它会自动设置为BottomNavigationBarType.fixed, 否则为BottomNavigationBarType.shifting. BottomNavigationBarType.fixed,当少于四个项目时的默认值.如果选中的项为非null…
import 'package:flutter/material.dart'; class FloatingActionButtonDemo extends StatelessWidget { @override Widget build(BuildContext context) { final Widget _floatingActionButton = FloatingActionButton( onPressed: () {}, child: Icon(Icons.add), eleva…
加入图片的几种方式 Image.asset:加载资源图片,就是加载项目资源目录中的图片,加入图片后会增大打包的包体体积,用的是相对路径. Image.network:网络资源图片,意思就是你需要加入一段http://xxxx.xxx的这样的网络路径地址. Image.file:加载本地图片,就是加载本地文件中的图片,这个是一个绝对路径,跟包体无关. Image.memory: 加载Uint8List资源图片,不怎么使用 Image 组件的常用属性: fit属性的设置 fit属性可以控制图片的拉伸…
AlertDialog组件 import 'package:flutter/material.dart'; void main() { runApp(MaterialApp( title: "DialogWidget", home: MyApp(), )); } class MyApp extends StatefulWidget { @override _MyAppState createState() => _MyAppState(); } class _MyAppState…
Switch组件常用的属性: 属性 描述 value 单选的值 onChanged 改变时触发 activeColor 选中的颜色.背景颜色 import 'package:flutter/material.dart'; void main() { runApp(MaterialApp( title: "Switch", home: MyApp(), )); } class MyApp extends StatefulWidget { @override _MyAppState cre…
Radio组件 Radio组件的常用属性: 属性 描述 value 单选的值 onChanged 改变时触发 activeColor 选中的颜色.背景颜色 groupValue 选择组的值 import 'package:flutter/material.dart'; void main() { runApp(MaterialApp( title: "Radio", home: MyApp(), )); } class MyApp extends StatefulWidget { @o…
Checkbox组件 Checkbox组件常用的属性: 属性 描述 value true 或者 false onChanged 改变的时候触发的事件  activeColor 选中的颜色.背景颜色 checkColor 选中的颜色.Checkbox 里面对号的颜色  import 'package:flutter/material.dart'; void main() { runApp(MaterialApp( title: "CheckBox", home: MyApp(), ));…
TextField组件的常用属性: 属性 描述 maxLines 设置此参数可以把文本框改为多行文本框 onChanged 文本框改变的时候触发的事件 decoration hintText 类似 html 中的 placeholder border 配置文本框边框 OutlineInputBorder 配合使用 labelText lable 的名称 labelStyle 配置 lable 的样式 obscureText 把文本框框改为密码框 controller controller 结合…
FloatingActionButton 简称 FAB ,可以实现浮动按钮,也可以实现类似闲鱼 app 的地步凸起导航.     属性名称 属性值 child 子视图,一般为 Icon,不推荐使用文字 tooltip FAB 被长按时显示,也是无障碍功能 backgroundColor 背景颜色 elevation 未点击的时候的阴影 hignlightElevation 点击时阴影值,默认 12.0 onPressed 点击事件回调 shape 可以定义 FAB 的形状等 mini 是否是 m…
TabBar组件的常用属性: 属性 描述 tabs 显示的标签内容,一般使用 Tab 对象,也可以是其他的Widget  controller TabController 对象 isScrollable 是否可滚动 indicatorColor 指示器颜色 indicatorWeight 指示器高度 indicatorPadding 底部指示器的 Padding indicator 指示器 decoration,例如边框等 indicatorSize 指示器大小计算方式,TabBarIndica…
AppBar组件的常用属性如下: 属性 描述 leading 在标题前面显示的一个控件,在首页通常显示应用的 logo:在其他界面通常显示为返回按钮 title 标题,通常显示为当前界面的标题文字,可以放组件 actions 通常使用 IconButton 来表示,可以放按钮组 bottom 通常放 tabBar,标题下面显示一个 Tab 导航栏 backgroundColor 导航背景颜色 iconTheme 图标样式 textTheme 文字样式 centerTitle 标题是否居中显示 i…
Wrap 可以实现流布局,单行的 Wrap 跟 Row 表现几乎一致,单列的 Wrap 则跟 Row 表现几乎一致.但 Row 与 Column 都是单行单列的,Wrap 则突破了这个限制,mainAxis 上空间不足时,则向 crossAxis 上去扩展显示.   Wrap组件的常用属性: 属性 说明 direction 主轴的方向,默认水平 alignment 主轴的对其方式 spacing 主轴方向上的间距 textDirection 文本方向 verticalDirection 定义了…
Card 是卡片组件块,内容可以由大多数类型的 Widget 构成,Card 具有圆角和阴影,这让它看起来有立体感.   Card组件的常用属性: 属性 说明 margin 外边距 child 子组件 shape Card的阴影效果,默认的阴影效果为圆角的长方形边 import 'package:flutter/material.dart'; void main() { runApp(MaterialApp( title: "CardWidget", home: MyApp(), ))…
AspectRatio 的作用是根据设置调整子元素 child 的宽高比. AspectRatio 首先会在布局限制条件允许的范围内尽可能的扩展,widget 的高度是由宽度和比率决定的,类似于 BoxFit 中的 contain,按照固定比率去尽量占满区域. 如果在满足所有限制条件过后无法找到一个可行的尺寸,AspectRatio 最终将会去优先适应布局限制条件,而忽略所设置的比率.   AspectRatio组件常用的属性: 属性 说明 aspectRatio 宽高比,最终可能不会根据这个值…
Stack 表示堆的意思,我们可以用 Stack 或者 Stack 结合 Align 或者 Stack 结合 Positiond 来实现页面的定位布局. Stack组件 常用于两个子元素. Stack组件的常用属性: 属性 说明 alignment 配置所有子元素的显示位置 children 子组件 import 'package:flutter/material.dart'; void main() { runApp(MaterialApp( title: "StackWidget"…
Expanded组件可以结合Row和Column布局组件使用. Expanded组件的常用属性 属性 说明 flex 元素占整个父Row/Column的比例 child 子元素 import 'package:flutter/material.dart'; void main() { runApp(MaterialApp( title: "ExpandedWidget", home: MyApp(), )); } class MyApp extends StatelessWidget…
无状态组件(StatelessWidget)是不可变的,这意味着它的属性不能改变,所有的值都是最终的. 有状态组件(StatefulWidget)持有的状态可能在Widget生命周期中发生变化.实现一个StatefulWidget至少需要两个类:一个StatefulWidget类,一个State类.StatefulWidget类本身是不变的,但是State类在Widget生命周期中始终存在. 一.容器组件Container:包含一个子Widget,自身具备如alignment.padding等基…