Flutter 如何禁用CupertinobView中的特定选项卡,以便能够单击?
我希望当用户未登录时,选项卡将被禁用,但“Mon Compte”和“Annonces”选项卡将被激活。 有没有办法关闭CupertinobView中的特定选项卡?因此,除非用户登录,否则无法单击它?或者如果用户未连接,我如何更改索引欢迎任何帮助,谢谢Flutter 如何禁用CupertinobView中的特定选项卡,以便能够单击?,flutter,dart,flutter-cupertino,Flutter,Dart,Flutter Cupertino,我希望当用户未登录时,选项卡将被禁用,但“Mon Compte”和“Annonces”选项卡将被激活。 有没有办法关闭CupertinobView中的特定选项卡?因此,除非用户登录,否则无法单击它?或者如果用户未连接,我如何更改索引欢迎任何帮助,谢谢 class BottomMenu extends StatefulWidget { @override State<StatefulWidget> createState() { return _BottomMenuSt
class BottomMenu extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return _BottomMenuState();
}
}
class _BottomMenuState extends State<BottomMenu> {
static int currentTab = 3; // to keep track of active tab index
@override
Widget build(BuildContext context) {
SystemChrome.setSystemUIOverlayStyle(
SystemUiOverlayStyle(
statusBarColor: Colors.transparent,
statusBarBrightness: Brightness.light,
systemNavigationBarColor: Colors.transparent,
systemNavigationBarIconBrightness: Brightness.light,
),
);
return CupertinoTabScaffold(
tabBar: CupertinoTabBar(
currentIndex: currentTab ,
activeColor: Theme.of(context).primaryColor,
backgroundColor: Theme.of(context).backgroundColor,
inactiveColor: Theme.of(context).disabledColor,
items: const <BottomNavigationBarItem>[
BottomNavigationBarItem(
icon: Icon(Icons.search),
title: Text(
"Matching"
),
),
BottomNavigationBarItem(
icon: Icon(Icons.dashboard),
title:
Text(
"Annonces"
),
),
BottomNavigationBarItem(
icon: Icon(MenuIcon.favorite__1_),
title:
Text("Favoris"),
),
BottomNavigationBarItem(
icon: Icon(MenuIcon.user__1_),
title: Text(
"Mon Compte"
),
),
],
),
tabBuilder: (context, index) {
switch (index) {
case 0:
return CupertinoTabView(builder: (context) {
return CupertinoPageScaffold(
child: Matching(),
);
}
);
case 1:
return CupertinoTabView(builder: (context) {
return CupertinoPageScaffold(
child: Offers(),
);
});
case 2:
return CupertinoTabView(builder: (context) {
return CupertinoPageScaffold(
child: Favorites(),
);
});
default: return CupertinoTabView(
builder: (context) {
return CupertinoPageScaffold(
child: Login(),
);
});
}
},
);
}
}
类底部菜单扩展StatefulWidget{
@凌驾
状态createState(){
返回_BottomMenuState();
}
}
类底部自定义扩展状态{
static int currentTab=3;//跟踪活动选项卡索引
@凌驾
小部件构建(构建上下文){
SystemChrome.SetSystemTimeOverlayStyle(
系统样式(
statusBarColor:Colors.transparent,
状态:亮度。亮度,
systemNavigationBarColor:Colors.transparent,
systemNavigationBarIconBrightness:Brightness.light,
),
);
回程杯(
tabBar:CupertinoTabBar(
currentIndex:currentTab,
activeColor:Theme.of(context.primaryColor),
背景色:主题。背景色,
inactiveColor:Theme.of(context).disabledColor,
项目:常数[
底部导航气压计(
图标:图标(Icons.search),
标题:正文(
“匹配”
),
),
底部导航气压计(
图标:图标(图标.仪表板),
标题:
正文(
“Annonces”
),
),
底部导航气压计(
图标:图标(MenuIcon.favorite\uuuuu1),
标题:
文本(“Favoris”),
),
底部导航气压计(
图标:图标(菜单图标用户1),
标题:正文(
“Mon Compte”
),
),
],
),
tabBuilder:(上下文,索引){
开关(索引){
案例0:
返回CupertinoTabView(生成器:(上下文){
返回式CupertinoPageScaffold(
子项:匹配(),
);
}
);
案例1:
返回CupertinoTabView(生成器:(上下文){
返回式CupertinoPageScaffold(
child:Offers(),
);
});
案例2:
返回CupertinoTabView(生成器:(上下文){
返回式CupertinoPageScaffold(
子项:收藏夹(),
);
});
默认值:返回CupertinoTabView(
生成器:(上下文){
返回式CupertinoPageScaffold(
子:登录(),
);
});
}
},
);
}
}