如何滚动嵌套在Flutter中的Listview
How to scroll Listview nested in Flutter
当我使用两个嵌套的 Listviews 和 ListView.builder 它仍然滚动,但是带有 shirnkSwap 属性 的子 Listview.builder 不能再滚动,但我不想使用小部件容器中的高度属性,因为它非常丑陋。
颤振 1.9.4 SDK
// 我的主屏幕
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Color(0xFFEEF0F2),
appBar: AppBar(
backgroundColor: Color(0xFF396DF0),
elevation: 0,
leading: LeadinguttonIcon(),
title: Text('TheGoal'),
actions: <Widget>[ActionIconButton()],
),
body:
ListView(children: <Widget>[TopHomeScreenBody(), BottomHomeScreen()]),
);
}
}```
**// TopHomeScreenBody**
```class TopHomeScreenBody extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ClipPath(
clipper: BodyClipper(),
child: Container(
color: Color(0xFF396DF0),
padding: EdgeInsets.only(top: 10, right: 22, left: 22, bottom: 30),
height: 250,
width: double.infinity,
child: Container(
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.all(Radius.circular(15))),
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[MainText(), SubText()],
),
),
),
);
}
}```
**// BottomHomeScreen**
```class BottomHomeScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
// IT CAN SCROLL WHEN ADD HEIGHT BUT I
// DONT WANT USE HEIGHT HERE BECAUSE VERY UGLY APP
// height: 400,
padding: EdgeInsets.all(25),
decoration: BoxDecoration(
color: Color(0xFFEEF0F2),
),
child: ListView.builder(
shrinkWrap: true,
itemBuilder: (context, index) {
return BottomGoalTitle(
text: '${goalList[index].text}',
decsText: '${goalList[index].decsText}',
color: goalList[index].color,
icon: goalList[index].icon,
);
},
itemCount: goalList.length,
),
);
}
}
感谢您的阅读。希望得到您的帮助!
如果您的意思是您不希望 listview.builder
滚动,请尝试添加此 physics: NeverScrollableScrollPhysics(),
当我使用两个嵌套的 Listviews 和 ListView.builder 它仍然滚动,但是带有 shirnkSwap 属性 的子 Listview.builder 不能再滚动,但我不想使用小部件容器中的高度属性,因为它非常丑陋。
颤振 1.9.4 SDK
// 我的主屏幕
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Color(0xFFEEF0F2),
appBar: AppBar(
backgroundColor: Color(0xFF396DF0),
elevation: 0,
leading: LeadinguttonIcon(),
title: Text('TheGoal'),
actions: <Widget>[ActionIconButton()],
),
body:
ListView(children: <Widget>[TopHomeScreenBody(), BottomHomeScreen()]),
);
}
}```
**// TopHomeScreenBody**
```class TopHomeScreenBody extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ClipPath(
clipper: BodyClipper(),
child: Container(
color: Color(0xFF396DF0),
padding: EdgeInsets.only(top: 10, right: 22, left: 22, bottom: 30),
height: 250,
width: double.infinity,
child: Container(
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.all(Radius.circular(15))),
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[MainText(), SubText()],
),
),
),
);
}
}```
**// BottomHomeScreen**
```class BottomHomeScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
// IT CAN SCROLL WHEN ADD HEIGHT BUT I
// DONT WANT USE HEIGHT HERE BECAUSE VERY UGLY APP
// height: 400,
padding: EdgeInsets.all(25),
decoration: BoxDecoration(
color: Color(0xFFEEF0F2),
),
child: ListView.builder(
shrinkWrap: true,
itemBuilder: (context, index) {
return BottomGoalTitle(
text: '${goalList[index].text}',
decsText: '${goalList[index].decsText}',
color: goalList[index].color,
icon: goalList[index].icon,
);
},
itemCount: goalList.length,
),
);
}
}
感谢您的阅读。希望得到您的帮助!
如果您的意思是您不希望 listview.builder
滚动,请尝试添加此 physics: NeverScrollableScrollPhysics(),