TabBar没有将另一个屏幕显示为全屏-颤动

时间:2019-12-26 09:24:35

标签: flutter flutter-layout

I need to create something like this

我正在使用底部导航栏作为主页。 而不是单击项目底部导航时,将打开一个包含TabBarView的屏幕。 在我的标签栏视图中,我正在点击容器:

onTap: (){
                  // _tabController.animateTo(value)
                  Navigator.push(context,
                      MaterialPageRoute(builder: (context) => Screen(),fullscreenDialog: true));
                }

我要从上面的代码在下面显示的图像上获得此输出,我需要将第二个屏幕显示为全屏,就像没有选项卡屏幕的应用栏一样。

2 个答案:

答案 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'),
        ));
  }
}