如何在页面底部添加一个 Widget 并使用 ListView 滚动?
How can I add a Widget that is at the bottom of the page and Scrollable with ListView?
我有一个构建多个卡片的 ListView,在它们下面,我想添加一个 Text 小部件,该小部件位于 ListView 下方但位于页面底部,这意味着您必须向下滚动到最后一张卡看吧。
Widget _buildCardList() {
return ListView.builder(
itemBuilder: _buildFoodCards,
itemCount: cardList.length,
);
}
@override
Widget build(BuildContext context) {
return Container(
// constraints: BoxConstraints.expand(),
decoration: BoxDecoration(
gradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [Color(0xff170422), Color(0xff9B22E6)],
stops: [0.75, 1],
),
),
child: Column(
children: <Widget>[
Expanded(child: _buildCardList()),
Text(
'TEXT THAT SHOULD BE SCROLLABLE UNDER THE LISTVIEW',
style: TextStyle(color: Colors.white),
)
],
),
);
}
我现在在 ListView 下有文本,但文本在页面上是静态的,不能随 ListView 滚动。
how it looks right now
只需进行一些更改即可使其正常工作:
- 将
shrinkWrap
= true
设置为您的 ListView
。
- 将
physics
= NeverScrollableScrollPhysics
设置为您的 ListView
。
- 将
SingleChildScrollView
添加为 Column
的 parent。
- 删除
Expanded
小部件。
代码
Widget _buildCardList() {
return ListView.builder(
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
itemBuilder: _buildFoodCards,
itemCount: cardList.length,
);
}
@override
Widget build(BuildContext context) {
return Container(
// constraints: BoxConstraints.expand(),
decoration: BoxDecoration(
gradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [Color(0xff170422), Color(0xff9B22E6)],
stops: [0.75, 1],
),
),
child: SingleChildScrollView(
child: Column(
children: <Widget>[
_buildCardList(),
Text(
'TEXT THAT SHOULD BE SCROLLABLE UNDER THE LISTVIEW',
style: TextStyle(color: Colors.white),
)
],
),
),
);
}
希望对您有所帮助:)
我有一个构建多个卡片的 ListView,在它们下面,我想添加一个 Text 小部件,该小部件位于 ListView 下方但位于页面底部,这意味着您必须向下滚动到最后一张卡看吧。
Widget _buildCardList() {
return ListView.builder(
itemBuilder: _buildFoodCards,
itemCount: cardList.length,
);
}
@override
Widget build(BuildContext context) {
return Container(
// constraints: BoxConstraints.expand(),
decoration: BoxDecoration(
gradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [Color(0xff170422), Color(0xff9B22E6)],
stops: [0.75, 1],
),
),
child: Column(
children: <Widget>[
Expanded(child: _buildCardList()),
Text(
'TEXT THAT SHOULD BE SCROLLABLE UNDER THE LISTVIEW',
style: TextStyle(color: Colors.white),
)
],
),
);
}
我现在在 ListView 下有文本,但文本在页面上是静态的,不能随 ListView 滚动。
how it looks right now
只需进行一些更改即可使其正常工作:
- 将
shrinkWrap
=true
设置为您的ListView
。 - 将
physics
=NeverScrollableScrollPhysics
设置为您的ListView
。 - 将
SingleChildScrollView
添加为Column
的 parent。 - 删除
Expanded
小部件。
代码
Widget _buildCardList() {
return ListView.builder(
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
itemBuilder: _buildFoodCards,
itemCount: cardList.length,
);
}
@override
Widget build(BuildContext context) {
return Container(
// constraints: BoxConstraints.expand(),
decoration: BoxDecoration(
gradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [Color(0xff170422), Color(0xff9B22E6)],
stops: [0.75, 1],
),
),
child: SingleChildScrollView(
child: Column(
children: <Widget>[
_buildCardList(),
Text(
'TEXT THAT SHOULD BE SCROLLABLE UNDER THE LISTVIEW',
style: TextStyle(color: Colors.white),
)
],
),
),
);
}
希望对您有所帮助:)