我正在使用底部导航栏作为主页。
而不是单击项目底部导航时,将打开一个包含TabBarView
的屏幕。
在我的标签栏视图中,我正在点击容器:
onTap: (){
// _tabController.animateTo(value)
Navigator.push(context,
MaterialPageRoute(builder: (context) => Screen(),fullscreenDialog: true));
}
我要从上面的代码在下面显示的图像上获得此输出,我需要将第二个屏幕显示为全屏,就像没有选项卡屏幕的应用栏一样。
答案 0 :(得分:1)
我发现,要从显示有appBar的屏幕导航到隐藏appBar的屏幕,对我来说最好的方法是稍微修改MaterialPageRoute
:
Navigator.of(context, rootNavigator: true).push(
MaterialPageRoute(
builder: (context) => HomeScreen(),
),
);
对我来说,完成您要查找的内容的关键是在命令中添加rootNavigator: true
,因为这会将页面推到了appBar的顶部。
答案 1 :(得分:0)
如果要隐藏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'),
));
}
}