Ниже приведен скриншот текущей ситуации/проблемы. У меня есть диалог с размытым фоном. Я хочу показать закусочную, когда пользователь нажимает кнопку «копировать реферальную ссылку». Однако, поскольку я поставил размытый фон диалога, закусочная также остается за фоном.
Я хочу отображать закусочную, не размывая ее, когда пользователь нажимает кнопку. Как я могу достичь этого результата? Фон всегда должен быть размытым, но мне просто нужно показать закусочную поверх этого размытия, когда пользователь нажимает кнопку.
вы можете вызвать диалоговое окно, создав собственный, например, мой код ниже
class MyHomePage extends StatefulWidget {
const MyHomePage({Key? key, required this.title}) : super(key: key);
final String title;
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
bool isShow = false;
void _incrementCounter() {
setState(() {
isShow = !isShow;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Stack(
children: [
ConstrainedBox(
constraints: const BoxConstraints.expand(),
child: const FlutterLogo(),
),
isShow
? GestureDetector(
onTap: _incrementCounter,
child: Container(
width: MediaQuery.of(context).size.width,
height: MediaQuery.of(context).size.height,
color: Colors.black38,
alignment: Alignment.center,
child: GestureDetector(
onTap: () {},
child: AlertDialog(
content: const Text("dsd"),
actions: [
ElevatedButton(
onPressed: () {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: const Text('Awesome Snackbar!'),
action: SnackBarAction(
label: 'Action',
onPressed: () {
// Code to execute.
},
),
),
);
},
child: const Text("Show Snackbar"),
)
],
),
),
),
)
: const SizedBox()
],
),
floatingActionButton: FloatingActionButton(
onPressed: _incrementCounter,
tooltip: 'Increment',
child: const Icon(Icons.notifications),
),
);
}
}
снимок экрана: https://i.stack.imgur.com/inX4I.png
Я не могу отобразить изображение из-за отсутствия очков репутации
Спасибо за ответ, извлечение виджета для диалога и работа с закусочной таким образом кажется хорошим обходным путем. Тем не менее, трудно масштабировать эту вещь в большом проекте, где мы управляем диалогами отдельно от виджетов, у которых есть скаффолд-предок. Также я использовал BackdropFilter в некоторых местах для дополнительного размытия фона. Было бы лучше найти способ полностью избежать размытости, поскольку мы также продолжим использовать диалоги, как и ожидалось. Спасибо за предложение.