有什么方法可以让TabBarView.builder在flutter中?

zyfwsgd6  于 2023-06-24  发布在  Flutter
关注(0)|答案(1)|浏览(153)

我需要用tabBarView制作tabBar,但是TabBarView会立即生成它的所有子元素。有没有一种方法可以做像TabBarView.builder这样的事情,让每个孩子都单独构建?
我试过使用PageView.builder,但是我必须将它与标签栏连接,所以没有帮助。

ztyzrc3y

ztyzrc3y1#

您可以创建一个List<Tab>并向其添加一些选项卡。您也可以从列表中添加或删除。将TabBarTabBarView的方括号([])替换为包含选项卡的创建列表的名称。

说明

如果给予子组件一个列表,所有的项目都会出现,您可以实时更改项目
下面是一个示例代码:

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),
            )),
      ),
    );
  }
}

希望有帮助!

相关问题