flutter 不规则底部工具栏实现
2024-08-26 11:14:28
import 'package:flutter/material.dart';
import 'each_view.dart'; class BottomAppBarDemo extends StatefulWidget {
_BottomAppBarDemoState createState() => _BottomAppBarDemoState();
} class _BottomAppBarDemoState extends State<BottomAppBarDemo> {
List<Widget> _eachView; //创建视图数组
int _index = 0; //数组索引,通过改变索引值改变视图 @override
void initState() {
// TODO: implement initState
super.initState();
_eachView = List();
_eachView
..add(EachView('Home'))
..add(EachView('Home1'))
..add(EachView('Home2'))
..add(EachView('Home3'))
..add(EachView('Home4'));
} @override
Widget build(BuildContext context) {
return Scaffold(
body: _eachView[_index],
floatingActionButton: FloatingActionButton(
onPressed: () {
Navigator.of(context)
.push(MaterialPageRoute(builder: (BuildContext context) {
return EachView('New Page');
}));
},
tooltip: 'Increment',
child: Icon(
Icons.add,
color: Colors.white,
),
backgroundColor: Colors.green,
),
floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,
bottomNavigationBar: BottomAppBar(
color: Colors.white,
shape: CircularNotchedRectangle(),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: <Widget>[ IconButton(
icon: Icon(Icons.accessible_forward),
// color: Colors.white,
onPressed: () {
setState(() {
_index = 0;
});
}), IconButton(
icon: Icon(Icons.access_alarm),
// color:Colors.white,
onPressed: () {
setState(() {
_index = 1;
});
}),
IconButton(
icon: Icon(Icons.accessible_forward),
color: Colors.transparent,
onPressed: () {
setState(() {
_index = 2;
});
}),
IconButton(
icon: Icon(Icons.account_balance_wallet), // color:Colors.white,
onPressed: () {
setState(() {
_index = 3;
});
}),
IconButton(
icon: Icon(Icons.airport_shuttle),
// color:Colors.white,
onPressed: () {
setState(() {
_index = 4;
});
}),
],
),
),
);
}
}
import 'package:flutter/material.dart'; class EachView extends StatefulWidget {
String _title;
EachView(this._title);
@override
_EachViewState createState() => _EachViewState();
} class _EachViewState extends State<EachView> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar:AppBar(title:Text(widget._title)),
body: Center(child:Text(widget._title)),
);
}
}
效果:
最新文章
- H3 BPM让天下没有难用的流程之功能介绍
- .Net Core--目录
- iOS键盘输入屏幕上移
- 使用Angularjs的ng-cloak指令避免页面乱码
- MVC下判断PC和移动端
- $http服务和$location
- linux查看修改线程默认栈空间大小(ulimit -s)
- A New Tetris Game
- mysql 的数据文件
- ios专题 -内存管理 研究
- [转] JavaScript中的属性:如何遍历属性
- 不用标准库实现memmove,借助一个缓冲区temp,即使src和dest所指的内存有重叠也能正确拷贝
- 【Xamarin开发 Android 系列 8】 创建一个Json读取数据应用(上)
- fatal error C1083: Cannot open precompiled header file: &#39;Debug/xxoo.pch&#39;: No such file or directory
- SpringMVC, Spring和Mybatis整合案例一
- DotNetCore跨平台~在appsettings.json里自定义配置项
- Python3学习笔记33-正则表达式
- x64 assembler fun-facts(转载)
- Android电话拨打权限绕过漏洞(CVE-2013-6272)分析
- Android 各API版本代码常量