FloatingActionButton onPressed不触发

问题描述 投票:0回答:1

希望这里简单一点。

我有动画的浮动按钮。它们似乎没有触发我的onPressed代码,虽然我在日志中获得了“ViewPostImeInputStage processPointer 0”和1类型事件,但似乎什么也没做。

一个按钮:

Widget dice() {
  return Container(
    child: FloatingActionButton(
      elevation: 5.0,
      backgroundColor: Theme.of(context).accentColor,
      heroTag: null,
      onPressed: _rollDice,
      tooltip: 'Inbox',
      child: SizedBox(
        height: 32,
        width: 32,
        child: Image.asset('lib/images/dice_button.png'),
      ),
    ),
  );
}

它应该触发的方法:

_rollDice() {
  print('Dice pressed');
  int rng = new Random().nextInt(20);
  print(rng.toString());
}

按下按钮三次输出:

D/ViewRootImpl@b9525ac[MainActivity](11404): ViewPostImeInputStage processPointer 0
D/ViewRootImpl@b9525ac[MainActivity](11404): ViewPostImeInputStage processPointer 1
D/ViewRootImpl@b9525ac[MainActivity](11404): ViewPostImeInputStage processPointer 0
D/ViewRootImpl@b9525ac[MainActivity](11404): ViewPostImeInputStage processPointer 1
D/ViewRootImpl@b9525ac[MainActivity](11404): ViewPostImeInputStage processPointer 0
D/ViewRootImpl@b9525ac[MainActivity](11404): ViewPostImeInputStage processPointer 1

预期产量:

Dice pressed
11
Dice pressed
2
Dice pressed
18

我在这做什么傻事?

flutter floating-action-button
1个回答
0
投票

这里的问题是它是一个已被转换的按钮。虽然这应该完全没有区别,但是关于这个问题存在大量的线索。如果通过将按钮转换为新位置来移动按钮,则按钮的可单击区域将保留在其ORIGINAL位置。

是的,我说得对。如果屏幕左上角有一个按钮,并且您将其转换到右下角,则您将无法再单击该按钮的新位置,因为该按钮认为它仍位于左上方。

这是绝对迟钝和不可行的。

对我来说,修复是在目标位置覆盖一些不可见的不透明小部件,并在这些小部件上触发onclick事件。我看到有一个帖子,开发人员称这个巨大的错误“按预期工作”,所以不要指望这很快就会得到解决,即使看起来整个社区都在呼唤它。

© www.soinside.com 2019 - 2024. All rights reserved.