在 Flutter 中将带有文本的容器放在列表视图上方
Putting Container with Text above List View in Flutter
我想在 Flutter 的 ListView 上方放置一个带有一些文本的简单容器。
我试图将文本放在 AppBar 中,但我发现 AppBar 并非旨在这样做。
它应该看起来像这样(除了描述应该外包给专用容器)。
Example Image
我尝试关注 但没有完成任何事情。
return Scaffold(
body: Container(
padding: const EdgeInsets.fromLTRB(0, 20, 0, 0),
child: ListView(
scrollDirection: Axis.vertical,
children: [
Category(),
Category(),
Category(),
Category(),
Category(),
Category(),
Category(),
Category(),
Category(),
Category(),
Category(),
Category(),
Category(),
],
),
),
);
我是 Flutter 的新手,也是 Whosebug 的新手,所以我希望这个问题很好。
提前致谢并致以亲切的问候:)
首先,用 Expanded 包裹你的 ListView,然后用 Column 包裹它。
下面是一些代码示例:
return Container(
padding: const EdgeInsets.fromLTRB(0, 20, 0, 0),
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
const Text("HEADER"),
Expanded(
child: ListView.builder(
itemCount: 10,
itemBuilder: (context, index) {
return Padding(
padding: const EdgeInsets.all(8.0),
child: Container(
height: 30,
width: 50,
color: Colors.red,
),
);
}),
),
],
),
);
- 用柱子包裹容器。
- 在列中添加带有文本的容器。
- 用 Expanded 包裹 ListView 的容器,这样它就可以占据屏幕中剩余的 space。
- 在 ListView 中启用 shrinkWrap。
return Scaffold(
body: Column(
children: [
const FlutterLogo(), //replace it with your container with text
Expanded(
child: Container(
padding: const EdgeInsets.fromLTRB(0, 20, 0, 0),
child: ListView(
shrinkWrap: true, //make sure to enable shrink wrap
scrollDirection: Axis.vertical,
children: [
...
我想在 Flutter 的 ListView 上方放置一个带有一些文本的简单容器。 我试图将文本放在 AppBar 中,但我发现 AppBar 并非旨在这样做。
它应该看起来像这样(除了描述应该外包给专用容器)。 Example Image
我尝试关注
return Scaffold(
body: Container(
padding: const EdgeInsets.fromLTRB(0, 20, 0, 0),
child: ListView(
scrollDirection: Axis.vertical,
children: [
Category(),
Category(),
Category(),
Category(),
Category(),
Category(),
Category(),
Category(),
Category(),
Category(),
Category(),
Category(),
Category(),
],
),
),
);
我是 Flutter 的新手,也是 Whosebug 的新手,所以我希望这个问题很好。 提前致谢并致以亲切的问候:)
首先,用 Expanded 包裹你的 ListView,然后用 Column 包裹它。 下面是一些代码示例:
return Container(
padding: const EdgeInsets.fromLTRB(0, 20, 0, 0),
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
const Text("HEADER"),
Expanded(
child: ListView.builder(
itemCount: 10,
itemBuilder: (context, index) {
return Padding(
padding: const EdgeInsets.all(8.0),
child: Container(
height: 30,
width: 50,
color: Colors.red,
),
);
}),
),
],
),
);
- 用柱子包裹容器。
- 在列中添加带有文本的容器。
- 用 Expanded 包裹 ListView 的容器,这样它就可以占据屏幕中剩余的 space。
- 在 ListView 中启用 shrinkWrap。
return Scaffold(
body: Column(
children: [
const FlutterLogo(), //replace it with your container with text
Expanded(
child: Container(
padding: const EdgeInsets.fromLTRB(0, 20, 0, 0),
child: ListView(
shrinkWrap: true, //make sure to enable shrink wrap
scrollDirection: Axis.vertical,
children: [
...