FloatingActionButton onPressed не запускается - PullRequest
0 голосов
/ 12 февраля 2019

Надеюсь, здесь все просто.

У меня есть плавающие кнопки, которые анимированы.Похоже, они не запускают мой код 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

Все, что угодноглупо я здесь делаю?

1 Ответ

0 голосов
/ 20 февраля 2019

Проблема заключалась в том, что это была кнопка, которая была преобразована.Хотя это не должно иметь абсолютно никакого значения, существует огромное количество потоков по этой конкретной проблеме.Если вы переместите кнопку, преобразовав ее в новое место, область нажатия кнопки останется в своем ОРИГИНАЛЬНОМ месте.

Да, я сказал это правильно.Если у вас есть кнопка в верхнем левом углу экрана, и вы преобразуете ее в нижний правый угол, вы больше не сможете нажимать эту кнопку в новом месте, потому что кнопка считает, что она все еще находится в верхнем левом углу.

Это абсолютно умственно отсталый и неработоспособный.

Для меня было исправлено наложение некоторых виджетов непрозрачности в целевом местоположении, которые невидимы, и вместо этого на этих виджетах запускались события onclick.Я видел пост с разработчиком, который называет эту огромную ошибку «работающей так, как задумано», поэтому не ожидайте, что это будет исправлено в ближайшее время, даже если кажется, что все сообщество призывает к этому.

...