我是个初学者。
我想在TabBarView中添加多个小部件数组。
我有3个数组与ListView包含在他们的卡小部件。
是否可以在TabBarView中放置多个数组?
我该如何做到这一点?
这是我的代码。
@override
Widget build(BuildContext context) {
final List<Widget> stack = <Widget>[];
final List<Widget> info = <Widget>[
_infoScreen();
];
final List<Widget> addStuff = <Widget>[
_someAdditionalStuff()
];
if (_queryProductError == null) {
stack.add(
ListView(
children: <Widget>[
_buildConnectionCheckTile(),
_buildProductList(),
_adsTitle(),
_adsButton(),
_buildRestoreButton(),
],
),
);
} else {
stack.add(Center(
child: Text(_queryProductError!),
));
}
if (_purchasePending) {
stack.add(
// TODO(goderbauer): Make this const when that's available on stable.
// ignore: prefer_const_constructors
Stack(
children: const <Widget>[
Opacity(
opacity: 0.3,
child: ModalBarrier(dismissible: false, color: Colors.grey),
),
Center(
child: CircularProgressIndicator(),
),
],
),
);
}
return MaterialApp(
home: DefaultTabController(
length: 3,
child: Scaffold(
appBar: AppBar(
bottom: const TabBar(
tabs: [
Tab(icon: Icon(Icons.shopping_basket_outlined),
text : 'Донације'),
Tab(icon: Icon(Icons.info_outline),
text : 'Инфо'),
Tab(icon: Icon(Icons.directions_bike)),
],
),
centerTitle: true,
title: Text('Донације'),
leading: IconButton(
onPressed: (){ main();},
icon: const Icon(Icons.keyboard_return_sharp),
)
),
body: new TabBarView(
children:
stack,
info,
addStuff,
),
),
),
);
}
这不起作用,并给我一个“TabBarView中有太多位置参数异常”。
下面的例子是3卡小部件和工作正常,但不是我想要的:
return MaterialApp(
home: DefaultTabController(
length: 3,
child: Scaffold(
appBar: AppBar(
bottom: const TabBar(
tabs: [
Tab(icon: Icon(Icons.shopping_basket_outlined),
text : 'Донације'),
Tab(icon: Icon(Icons.info_outline),
text : 'Инфо'),
Tab(icon: Icon(Icons.directions_bike)),
],
),
centerTitle: true,
title: Text('Донације'),
leading: IconButton(
onPressed: (){ main();},
icon: const Icon(Icons.keyboard_return_sharp),
)
),
body: new TabBarView(
children:
_buildProductList
_infoScreen
_someAdditionalStuff
),
),
),
);
}
我想有5个小工具标签1
标签2上有2个小部件,标签3上有1个小部件
我试过几种方法,但我不明白。
谢谢你的帮助。
2条答案
按热度按时间lsmepo6l1#
TabBarView小部件中的children属性必须是小部件数组。其中array等于为选项卡数量定义的长度。
iezvtpos2#
好吧,我发现每个标签,只有一个小部件是可能的,所以我管理它与ListTile和列内,而不是卡,所以我只有一个ListView小部件,而不是一对夫妇的卡小部件。它看起来不像我想要它做的卡小部件,但我很好,这个解决方案,因为我没有找到另一个。