300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Flutter NavigationBar 优雅的实现底部导航栏菜单

Flutter NavigationBar 优雅的实现底部导航栏菜单

时间:2019-06-20 11:30:13

相关推荐

Flutter NavigationBar 优雅的实现底部导航栏菜单

程序员如果敲一会就停半天,抱着一杯茶,表情拧巴,那才是在编程,在之前我要实现一级标签效果,我还在苦苦写了好多嵌套的代码,当我看到 Clip 时,泪奔啊,原来一个组件就可以实现,所以从事Flutter开发的小伙伴可以瞅瞅效果,万一用上呢 。

重要消息

flutter从入门 到精通 系列文章

本文章实现的效果如下:

在Flutter开发中NavigationBar 学用来配置底部菜单栏选项。

1 页面的主体是继承于StatefulWidget

StatefulWidget是一个可以更新页面显示样式的Widget,在Flutter开发中,如果未使用到状态管理框架如Getx这一类的内容,那么开发的所有的页面,只要涉及到页面中有数据更新,就需要使用StatefulWidget。

class NavaHomePage1 extends StatefulWidget {@overrideState<StatefulWidget> createState() {return _NavaHomePageState();}}class _NavaHomePageState extends State<NavaHomePage1> {///当前显示的页面角标int _currentIndex = 0;@overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text("底部导航"),),body: Text("这里是body $_currentIndex"),//底部导航栏bottomNavigationBar: NavigationBar(//菜单组destinations: navigationList,//当前选中的selectedIndex:_currentIndex ,//选择点击事件onDestinationSelected: (int index){setState(() {_currentIndex = index;});},//背景颜色backgroundColor: Colors.white,//表面覆盖的一层浅色surfaceTintColor: Colors.red,),);}...}

Scaffold 意为脚手架,在Flutter开发中,可以理解为页面的结构组件,一个空的页面,基本都是以Scaffold来布局。

Scaffold的属性appBar配置的是页面的顶部标题。

Scaffold的属性body配置的是页面中间显示的内容主体,在本实例中显示的是一个简单的文本,读者可以替换为对应的具体的实现页页面。

Scaffold的属性bottomNavigationBar配置的就是页面的底部的导航栏菜单,这里使用了NavigationBar,NavigationBar中destinations属性用来配置菜单选项,要求最少有两个子菜单选项,本实现中定义如下:

static const List<NavigationDestination> navigationList = [NavigationDestination(tooltip: "",icon: Icon(Icons.widgets_outlined),label: "菜单",selectedIcon: Icon(Icons.widgets),),NavigationDestination(tooltip: "",icon: Icon(Icons.file_open_outlined),label: "发现",selectedIcon: Icon(Icons.file_open),),NavigationDestination(tooltip: "",icon: Icon(Icons.text_fields),label: "列表",selectedIcon: Icon(Icons.text_fields_outlined),),NavigationDestination(tooltip: "",icon: Icon(Icons.people_alt_outlined),label: "我的",selectedIcon: Icon(Icons.people),)];

完毕

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。