Экран флаттера не работает, когда отображается вспышка
Я использую пакет Flash , но каждый раз, когда я вызываю
showFlash
функция и
Flash.dialog
отображается экран под ним. Вспышка больше не распознает жесты, только когда вспышка снова отключается.
Это моя вспышка, которую я вызываю по всему приложению, чтобы визуализировать успешное действие.
void showSuccessNoti({
required String message,
required BuildContext context,
}) {
showFlash(
context: context,
duration: const Duration(seconds: 2),
builder: (context, controller) {
return Flash.dialog(
barrierColor: Colors.transparent,
controller: controller,
alignment: Alignment.topCenter,
borderRadius: const BorderRadius.all(Radius.circular(4)),
backgroundColor: Theme.of(context).backgroundColor,
boxShadows: [
BoxShadow(
color: Colors.black.withOpacity(0.12),
offset: const Offset(3.0, 3.0),
blurRadius: 6,
)
],
margin: const EdgeInsets.only(top: kMediumPadding),
child: Padding(
padding: const EdgeInsets.symmetric(
horizontal: kMediumPadding,
vertical: kSmallPadding,
),
child: Row(mainAxisSize: MainAxisSize.min, children: <Widget>[
const Icon(
Icons.check_circle,
color: Color(0xFF52C41A),
size: 18.0,
),
const SizedBox(
width: 8,
),
Text(
message,
style: Theme.of(context).textTheme.bodyText2,
)
]),
),
);
},
);
}
Вот как я затем вызываю flash внутри своего приложения при изменении состояния:
BlocConsumer<UpdatePersonalBloc, UpdatePersonalState>(
listener: (context, state) {
if (state.formStatus is SubmissionSuccess) {
showSuccessNoti(
message: L.of(context).updateSuccessAddress,
context: context);
Navigator.pop(context);
} else if (state.formStatus is SubmissionFailed) {
showErrorNoti(
message: L.of(context).updateErrorMessage,
context: context);
}
},
builder: (context, state) {
Мне было бы интересно узнать, является ли такое поведение намеренным и является ли это ошибкой, как ее можно исправить.