Плавающая кнопка действия Flutter с динамическим статусом

Последние штрихи в моем первом мобильном приложении Flutter. Еще одно важное задание: моя плавающая кнопка действия отображается на верхней панели приложения для каждой страницы, но я хотел бы, чтобы ее статус изменялся (включен / отключен) в зависимости от текущей страницы. Это возможно? Если да, то будут очень признательны за любые учебные пособия, ресурсы, справочные материалы и / или примеры кода, подходящие для новичков. Спасибо!


person codeNameRayven    schedule 24.06.2020    source источник


Ответы (1)


Отлично, вы можете использовать Visibility:

floatingActionButton: Visibility(
  child: FloatingActionButton(...),
  visible: false, // set it to false
)

В качестве альтернативы вы можете использовать NotificationListener (более элегантный, но сложный).

Пожалуйста, проверьте этот пример из другой публикации


Изменить: возможно, управлять им непосредственно в onPressed. Согласно официальным документам:

Если обратный вызов onPressed имеет значение null, кнопка будет отключена и по умолчанию будет напоминать плоскую кнопку в disabledColor.

FloatingActionButton(
      onPressed: shouldButtonBeDisabled() ? null : () => whatToDoOnPressed,
      child: Text('blablabla')
    );
person vinipx    schedule 24.06.2020
comment
Спасибо за предложение! .. Я обязательно воспользуюсь этим однажды. Но не для этого проекта, я не думаю; поскольку я хочу, чтобы кнопка оставалась видимой, просто неактивной. хотя ваше предложение напоминает мне, что визуальные подсказки важны для пользовательского интерфейса; если моя кнопка остается видимой И выглядит так же, она может быть неправильно истолкована как «сломанная» на отключенной странице. поэтому я думаю, что изменение цвета и / или непрозрачности - это то, что нужно моему решению, так как оно останется видимым. Благодарность - person codeNameRayven; 25.06.2020
comment
Edit добавил одно новое предложение. Проверьте, есть ли в этом смысл. - person vinipx; 25.06.2020
comment
Это может сработать. То есть для опытного программиста, наверное, определенно. Могу я это сделать? .. Это другой вопрос, целиком, лол. Но вроде достаточно просто, всего 3 строчки .. это плюс; я попробую как можно скорее .. следите за обновлениями. Спасибо! - person codeNameRayven; 25.06.2020