Ayo*_*han 8 android android-listview flutter
我希望屏幕是可滚动的,所以我将所有内容都放在Listview中。
现在,我想在其中显示另一个Listview来显示列表的详细信息。当我尝试此操作时,将引发错误-“必须在Flex小部件内放置扩展的小部件。”
anm*_*ail 16
添加shrinkwrap: true在listview.builder与删除最顶端的container,或是更换column。
小智 15
shrinkWrap: true, physics: ScrollPhysics(),在listview.builder内部添加,在这种情况下,listview.builder需要扩展的父级。在physics: ScrollPhysics()将允许它保持其状态而不滚动回到第一个项目。另外,physics: NeverScrollableScrollPhysics()如果您不希望用户滚动listview.builder,则可以使用。
我希望我的屏幕是可滚动的,所以我把所有东西都放在一个 Listview 中。
我认为你应该使用带有条子的CustomScrollView。
如果您是第一次听说裂片妖,或者它们看起来有点吓人,我建议您阅读Emily Fortuna 撰写的这篇优秀文章。
在你的情况下,我会做这样的事情:
return CustomScrollView(
slivers: <Widget>[
SliverToBoxAdapter(
// Put here all widgets that are not slivers.
child: Container(),
),
// Replace your ListView.builder with this:
SliverList(
delegate: SliverChildBuilderDelegate(
(BuildContext context, int index) {
return ListTile();
},
),
),
],
);
Run Code Online (Sandbox Code Playgroud)
Buk*_*mi 7
在我的情况下,将physics: ScrollPhysics(),在ListView.builder作出ListView.builder滚动。
层次结构是 ListView > StreamBuilder > RefreshIndicator > ListView.builder。
这实际上取决于您的布局。可能的情况可能是:
使用ListView+ ListView:
如果你想给出你的第二个ListView完整高度。
ListView(
children: [
// Your other widgets ...
ListView.builder(
shrinkWrap: true, // <-- Set this to true
physics: ScrollPhysics(), // <-- Also change physics
itemBuilder: ...,
),
],
)
Run Code Online (Sandbox Code Playgroud)
使用ListView+ ListView:
如果你想限制第二个的高度ListView。
ListView(
children: [
// Your other widgets ...
SizedBox( // <-- Use SizedBox
height: 160,
child: ListView.builder(
itemBuilder: ...,
),
),
// Your other widgets ...
],
)
Run Code Online (Sandbox Code Playgroud)
使用Column+ ListView:
如果您的第一个 中没有太多(或太大)的子级ListView,请将其替换为Column.
Column(
children: [
// Your other widgets ...
Expanded( // <-- Use Expanded
child: ListView.builder(
itemBuilder: ...,
),
),
],
)
Run Code Online (Sandbox Code Playgroud)
当我使用两个ListViews 时,我遇到了这个问题,一个在另一个里面。除了这个解决方法外,没有什么对我有用。
在嵌套的 Listview 中,用 ConstrainedBox 覆盖它并给它一些大的高度。并使用 'shrinkWrap: true' 两个 ListView。由于收缩包装会修剪额外的空间,因此额外的高度不会成为问题。
Flexible(
child: ListView(
children: <Widget>[
//other Widgets here ...
ConstrainedBox(
constraints: BoxConstraints(maxHeight: 1000), // **THIS is the important part**
child: ListView.builder(
shrinkWrap: true,
itemBuilder: (context, index) => _buildRow(index),
itemCount: _elements.length,
),
),
],
),
),
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5821 次 |
| 最近记录: |