【发布时间】:2020-02-13 20:56:04
【问题描述】:
当我使用两个嵌套的 Listview 和 ListView.builder 时,它仍然滚动,但具有 shirnkSwap 属性的子 Listview.builder 不能再滚动,但我不想在小部件容器中使用 height 属性,因为它是很丑。
Flutter 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,ListView(children:
[TopHomeScreenBody(), BottomHomeScreen()]),你为什么不把它改成 Column 呢? -
如果我将其更改为水平屏幕中的列,topscreenbottom() 将在顶部固定大小并且无法滚动,并且内容 bottomhomescreen() 仅在一点点区域中,由 topscreenbody() 审查。我尝试更改为列并在 listview.builder(bottomhomescreen) 中使用扩展小部件包装,它可以在垂直屏幕上滚动最好,但在水平屏幕上是不好的。
-
对不起,不太明白你的意思,但是为什么你需要在可滚动小部件中的可滚动小部件?就像 ListView 中的 ListView 一样,我认为它不是使用 ListView 的最佳做法,如果您已经确定了主屏幕上的连续小部件,那么我认为使用 Colum 是最佳做法,如果孩子们有问题,您有修复孩子,不改变 Column,至于我,我总是在 SingleChildScrollView 中使用 Column,如果你能提供你想要创建的 UI,我会尽力帮助你创建它
-
你能在 facebook 或类似的社交网络上接我吗,我需要 10 的帖子图片声望,我是新手
标签: listview flutter dart scrollable