Теперь, когда мы понимаем, чего вы хотите достичь, это можно сделать с помощью виджета Stack, ListView и использования виджета Align для позиционирования контейнера, в котором содержится виджет, который вы хотите использовать в качестве заголовка:
Stack(
children: <Widget>[
ListView.builder(
itemCount: 20,
itemBuilder: (context, index) {
return Container(
child: Text('item $index'),
height: 40,
color: Colors.blueGrey,
margin: EdgeInsets.all(14),
);
}
),
Align(
alignment: Alignment.topCenter,
child: Container(
margin: EdgeInsets.only(top: 20),
alignment: Alignment.center,
height: 30,
width: 300,
color: Colors.blue,
child: Text('This is a title')
),
),
],
)
Предыдущие ответы, прежде чем окончательно понять, что хотел пользователь.
Если я правильно понял вашу проблему, и вы хотите, чтобы в представлении был фиксированный виджет сверху и список прокручиваемых элементов под ним, тогда CustomScrollView с SliverAppBar и SliverList будет решением для вас. Пожалуйста, см. Пример ниже:
CustomScrollView(
slivers: <Widget>[
SliverAppBar(
pinned: true,
title: Center(child: Text('Title')),
),
SliverList(
delegate: SliverChildBuilderDelegate(
(BuildContext context, int index) {
return Container(
height: 40,
margin: EdgeInsets.all(10),
alignment: Alignment.center,
color: Colors.teal[100 * (index % 9)],
child: Text('grid item $index'),
);
},
childCount: 20
),
),
],
)
Если вы хотите, чтобы фиксированный виджет был в нижней части представления, вы можете использовать свойство bottomNavigationBar
в Scaffold`:
Scaffold(
...
bottomNavigationBar: Container(
alignment: Alignment.center,
height: 50,
child: Text('title')
),
)