Ответ 1
Чтобы разместить тело под панелью приложений и сделать его прозрачным, в качестве тела требуется стек. Стек должен содержать AppBar, а не эшафот.
body: Stack(
children: <Widget>[...]
),
Первый элемент в стопке находится внизу, а последующие элементы находятся над ним. Если панель приложений прозрачна, она будет работать, но это не так. Сделав зеленый AppBar покажет вам, почему.
return Scaffold(
body: Stack(
children: <Widget>[
Container(
color: Colors.blue,
),
AppBar(title: Text('Hello world'),
backgroundColor: Colors.green,
)
],);
Как вы видите, панель приложений занимает весь экран и использует любые сенсорные события.
Чтобы исправить это, используйте виджет позиции,
body: Stack(
children: <Widget>[
Container(
color: Colors.blue,
),
new Positioned(
top: 0.0,
left: 0.0,
right: 0.0,
child: AppBar(title: Text('Hello world'),
backgroundColor: Colors.green,
),),
], )
И вы получите это:
Хорошо, теперь сделайте AppBar прозрачным и удалите тень:
body: Stack(
children: <Widget>[
Container( //My container or any other widget
color: Colors.blue,
),
new Positioned( //Place it at the top, and not use the entire screen
top: 0.0,
left: 0.0,
right: 0.0,
child: AppBar(title: Text('Hello world'),
backgroundColor: Colors.transparent, //No more green
elevation: 0.0, //Shadow gone
),),
], )
Надеюсь это поможет...