#flutter #button #gesturedetector #exclude
Вопрос:
Я поместил Карточку в большой черный контейнер, обернутый детектором жестов.
Теперь я хочу установить эту маленькую карточку в середине, которую нельзя щелкнуть, что означает, что единственной доступной частью является черный контейнер.
вот мой код:
Widget LogOutCard () {
return GestureDetector(
onTap: () { setState(() { isCardVisible = !isCardVisible; }); },
child: Container(
color: Color(0xcf000000),
child: Center(
child: Container(
width: 500.0,
height: 150.0,
child: Card(
child: Column(
children: [
ListTile(
leading: Icon(Icons.logout),
title: Text('log_out'.tr()),
subtitle: Text('Are_you_sure_to_log_out'),
),
ButtonBar(
children: [
TextButton(
onPressed: () {},
child: Text('_cancel_'),
),
ElevatedButton(
onPressed: () {},
child: Text('_log_out_'),
)],)],),),),),),);
}
Ответ №1:
Вы можете попробовать использовать IgnorePointer, который заставляет ребенка игнорировать сенсорные жесты. Не уверен, что это будет работать для всех ваших требований, потому что это, вероятно, также сделает эти кнопки недоступными.
Для такого всплывающего окна я бы предложил использовать метод ShowDialog и установить значение barrierDismissible равным true.
Комментарии:
1. Я попробовал использовать ShowDialog, и он работает лучше, большое спасибо