Я хотел бы реализовать эту панель наложения
Это то, чего я достиг в последнее время (я просто хочу размыть часть ниже части панели наложения, все остальное не проблема)
Важнейшей частью является то, что он должен размыть часть экрана ниже самого себя. Я понятия не имею, как мне это сделать, я попробовал все (например, настроить прозрачный контейнер и размыть его, но прозрачный цвет оказывается черным: /).
Вот так я сейчас реализую панель навигации с контейнером над ней:
Widget _navigationBarAndOverlay() {
return Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
OverlayBarWidget(),
_navigationBar(),
],
);
}
И это код OverlayBarWidget:
Widget build(BuildContext context) {
return Container(
color: Colors.transparent,
height: 85,
width: MediaQuery.of(context).size.width,
child: Center(child: Text("Nothing to do"),),
);
}
Заранее спасибо за Ваша помощь!
РЕДАКТИРОВАТЬ :
В конце концов мне удалось сделать это всего несколько минут спустя, поэтому я не буду назначать лучший ответ. Решением является использование стека вместо столбца: наложенная часть будет фактически перекрывать интерфейс, а не помещаться ниже. Чтобы сделать это, вам нужно дать вашему bottomAppBar точный размер (используйте SizeBox, как показано ниже) и использовать Positioned для позиционирования панели наложения
Stack(
children: <Widget>[
Scaffold(
body: TabBarView(
controller: tabController,
...
),
bottomNavigationBar: SizedBox(
height: 57,
child: _navigationBar(),
),
),
Positioned(
bottom: 57,
child: ClipRect(
child: BackdropFilter(
filter: ImageFilter.blur(sigmaY: 16, sigmaX: 16),
child: OverlayBarWidget(),
),
),
)
)
Окончательный результат