Flutter-滑动时隐藏FAB按钮

时间:2019-05-16 11:48:56

标签: flutter floating-action-button

我有一个带有TabBarView和FloatingActionButton的脚手架。每当我滑动到最后一个选项卡时,我都想隐藏此FAB。为此,我编写了以下代码:

@override
  void initState() {
    super.initState();

    widget._tabBarController = new TabController(length: 3, vsync: this);
    widget._tabBarController.addListener(() {
      if (widget._tabBarController.index == 2) {
        setState(() => widget._visibleFab = false);
      } else {
        setState(() => widget._visibleFab = true);
      }
    });
  }

带有支架的FAB按钮

Visibility(
  visible: widget._visibleFab,
  child: FloatingActionButton.extended(
  elevation: .75,
  label: new Text("My Action Button",
  style: TextStyle(
    fontWeight: FontWeight.w900,
    color: statusColor,
    letterSpacing: 0.2)),
  onPressed: () {

  },
  backgroundColor: Colors.white,
  icon: Icon(Icons.chat, color: statusColor),
  isExtended: true,
))

它可以工作,但是当我滑动到最后一个选项卡时将其隐藏大约需要半秒钟。除非我不触摸页面而直接触摸最后一个选项卡,否则它将立即被隐藏。

那是为什么?

2 个答案:

答案 0 :(得分:0)

我最终决定为每个Scaffold使用一个TabBarView。现在,我可以为每个选项卡设置一个FloatActionButton和一个BottomNavigatorBar了。

答案 1 :(得分:-1)

如果您不想要Fab,请更改构建方法以返回null。

例如

WHERE
JOIN