FloatingActionButton onPressed不触发(FloatingActionBu

2019-11-05 11:54发布

希望一个简单的在这里。

我有浮动式动画按钮。 他们似乎不触发我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

做傻事,我在这里做什么?

Answer 1:

这里的问题是,它已转化的按钮。 虽然这应该使绝对没有什么区别,有关于这个问题的确切线程的巨量。 如果通过将其转化为一个新的位置移动的按钮,按钮的点击区域保持在原来的位置。

是的,我说的是正确的。 如果你在屏幕的左上角有一个按钮,你把它转换到右下方,您将不再能够单击该按钮是因为按钮认为它仍然是在左上角的新位置。

这绝对是弱智,也是行不通的。

对我来说,修复是叠加在是看不见的目标位置的一些不透明部件,并具有的onclick事件上的这些小部件,而不是触发。 我已经看到了开发者调用这个巨大的错误“如预期运行”后,所以不要期望这是固定的任何时间很快,即使它似乎整个社会呼唤它。



文章来源: FloatingActionButton onPressed not triggering