Flutter TabBar没有将另一个屏幕显示为全屏-颤振
我使用底部导航栏作为我的主页。 在项目的底部导航中,单击打开一个包含Flutter TabBar没有将另一个屏幕显示为全屏-颤振,flutter,flutter-layout,Flutter,Flutter Layout,我使用底部导航栏作为我的主页。 在项目的底部导航中,单击打开一个包含TabBarView的屏幕。 在我的标签栏视图中点击我正在做的容器:: onTap: (){ // _tabController.animateTo(value) Navigator.push(context, MaterialPageRoute(builder: (context) => Screen(),
TabBarView
的屏幕。
在我的标签栏视图中点击我正在做的容器::
onTap: (){
// _tabController.animateTo(value)
Navigator.push(context,
MaterialPageRoute(builder: (context) => Screen(),fullscreenDialog: true));
}
从上面的代码中,我在下图中得到了这个输出,我需要将第二个屏幕显示为全屏,就像tabbar屏幕上的no app bar一样。如果您想隐藏特定状态的AppBar和TabBarView,您可以在小部件树上设置条件
class _ExampleState extends State<Example> {
bool _control = true;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: _control
? AppBar(
title: Text("Title Text"),
)
: null,
body: RaisedButton(
onPressed: () {
setState(() {
_control = !_control;
});
},
child: Text('Toggle AppBar'),
));
}
}
class\u示例状态扩展状态{
布尔控制=真;
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:\u控件
?AppBar(
标题:文本(“标题文本”),
)
:null,
主体:升起按钮(
已按下:(){
设置状态(){
_控制=!\u控制;
});
},
子项:文本(“切换应用程序栏”),
));
}
}
我发现,要从显示appBar的屏幕导航到隐藏appBar的屏幕,对我来说,最好的方法是稍微修改MaterialPage路径
:
Navigator.of(context, rootNavigator: true).push(
MaterialPageRoute(
builder: (context) => HomeScreen(),
),
);
对我来说,关键的一点就是在命令中添加
rootNavigator:true
,因为这会将页面推到appBar的顶部 是否要隐藏特定屏幕的应用程序栏和选项卡栏?是sure@easeccydo你知道这件事吗@Nardepsinh Vaghelai有两个不同的屏幕,所以设置状态将不起作用。我需要更多地了解您的应用程序结构。这取决于您如何进行状态管理。请注意,使用根导航器会中断分析的屏幕跟踪,因为它无法在RouteObserver.didPop