我需要用tabBarView制作tabBar,但是TabBarView会立即生成它的所有子元素。有没有一种方法可以做像TabBarView.builder这样的事情,让每个孩子都单独构建?我试过使用PageView.builder,但是我必须将它与标签栏连接,所以没有帮助。
tabBarView
tabBar
TabBarView
TabBarView.builder
PageView.builder
ztyzrc3y1#
您可以创建一个List<Tab>并向其添加一些选项卡。您也可以从列表中添加或删除。将TabBar和TabBarView的方括号([])替换为包含选项卡的创建列表的名称。
List<Tab>
TabBar
[]
如果给予子组件一个列表,所有的项目都会出现,您可以实时更改项目下面是一个示例代码:
class _MainAppState extends State<MainApp> { List<Tab> tabs = [ Tab(icon: Icon(Icons.directions_car)), Tab(icon: Icon(Icons.directions_transit)), Tab(icon: Icon(Icons.directions_bike)), ]; void addTab() { setState(() { tabs.add(Tab(icon: Icon(Icons.directions_bike))); }); } @override Widget build(BuildContext context) { return MaterialApp( title: 'TabBar Demo', home: DefaultTabController( length: tabs.length, child: Scaffold( appBar: AppBar( title: const Text('TabBar Demo'), bottom: TabBar( tabs: tabs, ), ), body: TabBarView(children: tabs), floatingActionButton: FloatingActionButton( onPressed: addTab, child: Icon(Icons.add), )), ), ); } }
希望有帮助!
1条答案
按热度按时间ztyzrc3y1#
您可以创建一个
List<Tab>
并向其添加一些选项卡。您也可以从列表中添加或删除。将TabBar
和TabBarView
的方括号([]
)替换为包含选项卡的创建列表的名称。说明
如果给予子组件一个列表,所有的项目都会出现,您可以实时更改项目
下面是一个示例代码:
希望有帮助!