颤动的选项卡失去焦点或对点击不响应

时间:2019-04-01 09:25:41

标签: flutter navigationbar

我有一个flutter应用,其中主屏幕是这样的tabBar

class MainRoute extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    SystemChrome.setEnabledSystemUIOverlays([SystemUiOverlay.top]);
    return MaterialApp(
      home: DefaultTabController(
        length: 3,
        child: Scaffold(
          body: TabBarView(
            physics: NeverScrollableScrollPhysics(),
            children: [
              Container(
                color: Color.fromRGBO(40, 40, 40, 1.0),
                child: Tab1(),
              ),
              Container(
                color: Color.fromRGBO(40, 40, 40, 1.0),
                child: Tab2(),
              ),
              Container(
                color: Color.fromRGBO(40, 40, 40, 1.0),
                child: Tab3(),
              ),
            ],
          ),
          bottomNavigationBar: TabBar(
            labelStyle: null,
            tabs: [
              Tab(
                icon: Icon(MdiIcons.home),
              ),
              Tab(
                icon: Icon(MdiIcons.settings),
              ),
              Tab(
                icon: Icon(MdiIcons.account),
              )
            ],
            indicatorColor: Colors.transparent,
            labelColor: Color.fromRGBO(255, 255, 255, 1),
            unselectedLabelColor: Color.fromRGBO(255, 255, 255, .3),

          ),
          backgroundColor: Colors.black,
        ),
      ),
    );

例如,我的Tab3()看起来像这样:

class Tab3 extends StatefulWidget {
  @override
  State<StatefulWidget> createState() => Tab3State();
}

class Tab3State extends State<Tab3> {

  @override
  Widget build(BuildContext context) {
    // TODO: Implement build
    return Scaffold(
      body: Center(
        child: Container(
          padding: EdgeInsets.only(top: 50),
          width: MediaQuery
              .of(context)
              .size
              .width,
          height: MediaQuery
              .of(context)
              .size
              .height,
          color: Colors.white,
          child: Column(
            children: <Widget>[
              Container(
                padding: EdgeInsets.all(10),
                child: RaisedButton(
                  padding: const EdgeInsets.all(20.0),
                  textColor: Colors.white,
                  onPressed: () {
                    print("GAllery tapped");
                  },
                  color: Colors.blue,
                  elevation: 10,
                  child: Text("Gallery"),
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

该应用在模拟器中运行正常,但是当我在真正的Adnroid设备上运行时,水龙头出现了问题。

当显示MainRoute时,如果我尝试通过点击图标导航到最后一个选项卡,则第一次和第二次从现在开始我都无法识别它(没有焦点??)。它可以按预期工作,并且仅在第一次点击时与所有选项卡相同。

现在,当加载Tab3时,“图库”按钮无法识别第一个拍子(也没有聚焦??),但随后识别出第二个拍子,并且从现在开始起作用。

代码有问题吗?代码架构有问题吗?我的真实设备(三星Galaxy S7)有问题吗?

1 个答案:

答案 0 :(得分:0)

我不知道它是否相关,但是您不应该有2个Scaffold小部件。 尝试删除Tab3State类中的一个,无论如何您都不需要它。