是否可以通过编程方式控制 Flutter 中的选项卡(Hide/Visible)

Is it possible to control tabs(Hide/Visible) in Flutter programmatically

我有两个选项卡,每个选项卡都有一些要由用户填写的数据。在 Tab-1(个人数据)中,我有一个带有一些小部件的表单,用户必须在其中输入他的个人详细信息。

在 Tab-1 (form-1) 中填写所有详细信息后,只有 Tab-2(病史)应该可以导航并可见。如何在 Flutter 中实现?

我们可以通过维护要显示的标签栏项目的数量来实现这一点。 基本上我们必须创建两个 List<Widget>,这将取决于要显示的标签栏数。

示例:

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  int _tabBarCount = 1;

  List<Widget> getTabBarList() { // Tab Bar items displayed on the App Bar
    switch (_tabBarCount) {
      case 1:
        return [Tab(icon: Icon(Icons.search))];
      case 2:
        return [
          Tab(icon: Icon(Icons.search)),
          Tab(icon: Icon(Icons.file_download))
        ];
      default:
        return [];
    }
  }

  List<Widget> getTabScreen() { // Screens to be displayed on Tab Bar
    switch (_tabBarCount) {
      case 1:
        return [
          RaisedButton(onPressed: () {
            setState(() {
              _tabBarCount = 2; // Click event, here tab bar count should increse, so that multiple tab bar can be visible.
            });
          }, child: Text('Save'),)
        ];
      case 2:
        return [
          Text('First Screen'),
          Text('Second Screen')
        ];
      default:
        return [];
    }
  }

  Widget build(BuildContext context) {
    return MaterialApp(
      home: DefaultTabController(
        length: _tabBarCount,
        child: Scaffold(
          backgroundColor: Colors.white,
          appBar: AppBar(
            bottom: TabBar(
              tabs: getTabBarList(),
            ),
            title: Text('Tabs Demo'),
          ),
          body: TabBarView(
            children: getTabScreen(),
          ),
        ),
      ),
    );
  }
}