我有一个Flutter应用程序,它使用IndexedStack保存可以通过bottomnavigationbar访问的两个页面的状态。问题是,其中之一页面必须由floatactionbutton编辑。此浮动操作按钮通过增加名为list的状态变量来编辑主窗口小部件(两个BottomNavigationBarPages)的状态,这反过来又应添加更多行。但是,一旦我使用IndexedStack保存状态,就不会这样做。我的IndexedStack设置如下:
class _Widg2State extends State<Widg2> {
List<int> list = [];
@override
Widget build(BuildContext context) {
pageList.add(_Page1());
pageList.add(_Page2());
List<int> list2 = [];
list2 = [1];
return new Scaffold(
floatingActionButton: Stack(
children: <Widget>[
Padding(padding: EdgeInsets.only(bottom:80),
child: Align(
alignment: Alignment.bottomRight,
child: _FAB1(),
),),
Align(
alignment: Alignment.bottomRight,
child: _FAB2(),
), //align
],
),
appBar: new AppBar(
backgroundColor: Colors.green,
title: new Text(
"Matts app",
style: new TextStyle(color: Colors.white)
), //Text
leading: new IconButton(
icon: new Icon(Icons.arrow_back),
onPressed: () {
Navigator.pop(context);
}//onPressed
) // IconButton
), //appbar
body: IndexedStack(
index: _selectedIndex,
children: pageList,
),//indexedstack
/*body: _selectedIndex == 0 ?
浮动操作按钮可以更改列表的大小,而列表大小又可以更改页面的行数,但是可以更改。
这是相关页面:
Widget _Page1() {
return ListView(
padding: const EdgeInsets.all(8),
children: <Widget>[
Container(
child: ListView.builder(
itemCount: list.length,
itemBuilder: (context, i) {
print("i: ${i}");
return listRow(valuepassed: i);
}, //itembuilder
), //listview.builder
//height: 200,
height: MediaQuery.of(context).size.height*(4/5),
width: double.infinity
), //container
我如何做到这一点,以便floatactionbuttons可以创建更多行?谢谢!