Flutter 是否可以通过编程方式控制颤振中的选项卡(隐藏/可见)
我有两个选项卡,每个选项卡上都有一些数据需要用户填写。在表1(个人数据)中,我有一个表单,其中包含一些小部件,用户必须在其中输入个人详细信息Flutter 是否可以通过编程方式控制颤振中的选项卡(隐藏/可见),flutter,flutter-navigation,Flutter,Flutter Navigation,我有两个选项卡,每个选项卡上都有一些数据需要用户填写。在表1(个人数据)中,我有一个表单,其中包含一些小部件,用户必须在其中输入个人详细信息 在表1(表1)中填写所有详细信息后,只有表2(病史)应导航并可见。如何在颤振中实现这一点?我们可以通过保持要显示的选项卡栏项目的数量来实现这一点。 基本上,我们必须创建两个列表,这取决于要显示的选项卡栏计数 示例: class MyApp extends StatefulWidget { @override _MyAppState createSt
在表1(表1)中填写所有详细信息后,只有表2(病史)应导航并可见。如何在颤振中实现这一点?我们可以通过保持要显示的选项卡栏项目的数量来实现这一点。 基本上,我们必须创建两个
列表
,这取决于要显示的选项卡栏计数
示例:
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(),
),
),
),
);
}
}
类MyApp扩展StatefulWidget{
@凌驾
_MyAppState createState()=>\u MyAppState();
}
类MyAppState扩展了状态{
int_tabBarCount=1;
列出应用程序栏上显示的getTabBarList(){//选项卡栏项目
开关(_tabBarCount){
案例1:
返回[选项卡(图标:图标(Icons.search))];
案例2:
返回[
选项卡(图标:图标(Icons.search)),
选项卡(图标:图标(Icons.file_下载))
];
违约:
返回[];
}
}
列出要在选项卡栏上显示的屏幕
开关(_tabBarCount){
案例1:
返回[
升起按钮(按下时:(){
设置状态(){
_tabBarCount=2;//单击事件,此处的选项卡栏计数应增加,以便可以看到多个选项卡栏。
});
},子项:文本('Save'),)
];
案例2:
返回[
文本(“第一屏”),
文本('第二屏')
];
违约:
返回[];
}
}
小部件构建(构建上下文){
返回材料PP(
主页:DefaultTabController(
长度:\ tabBarCount,
孩子:脚手架(
背景颜色:Colors.white,
appBar:appBar(
底部:选项卡栏(
制表符:getTabBarList(),
),
标题:文本(“选项卡演示”),
),
正文:选项卡视图(
儿童:GetAbscreen(),
),
),
),
);
}
}
您可以动态替换内容。请分享更多详细信息或应用程序Wireframe在tab-1中说,如果用户填写了文本表单字段小部件,则在按下Raised按钮时,应打开下一个选项卡(tab-2和另一个文本表单字段)。简单地说,在填写tab-1的表单之前,tab-2数据不应该是可见的和可访问的。如果您不希望它可见,为什么要为这样的要求设置选项卡?你能分享图像/线框以便更好地理解吗?太好了。它符合我的要求,变化不大。谢谢