ExpansionFile内部的ListView不';行不通
listview在ExpansionFile中不工作 我试图在ExpansionFile中显示listview.builder,但它引发了一些异常ExpansionFile内部的ListView不';行不通,listview,dart,flutter,flutter-sliver,Listview,Dart,Flutter,Flutter Sliver,listview在ExpansionFile中不工作 我试图在ExpansionFile中显示listview.builder,但它引发了一些异常 Card( child: ExpansionTile( leading: Icon( Icons.stars, color: Colors.pinkAccent, ), title: Text('Reviews',
Card(
child: ExpansionTile(
leading: Icon(
Icons.stars,
color: Colors.pinkAccent,
),
title: Text('Reviews',
style: Theme.of(context).textTheme.title,
),
children: [
ListView.builder(
itemCount: 5,
itemBuilder: (_, i) {
return (Text('item $i'));
})
],
),
),
我想做到这一点
ListView
的垂直大小是无界的,因此无法进行渲染。将ListView
的属性设置为true
以解决此问题。将包覆面提取和控制器都添加到ListView.builder中
final ScrollController _scrollController = ScrollController();
ListView.builder(
controller: _scrollController,
shrinkWrap: true,
...
以上所有解决方案都不能按预期工作。所以我解决了这个问题。您需要在Listview.builder()中使用此选项在扩展文件子文件中:
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
完整代码:
ExpansionTile(
onExpansionChanged: (e){
//Your code
},
title: Text("You title text"),
children: [
ListView.builder(
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
scrollDirection: Axis.vertical,
itemCount: items.length,
itemBuilder: (BuildContext context, int index){
return Text(items[index]);
}
)
],
),
在
ListView.builder中添加shrinkWrap:true,
,感谢它能正常工作,但每次我滚动ExpansionFile````````[ERROR:flatter/shell/common/shell.cc(184)]时它都会引发此异常。Dart错误:未处理的异常:E/flatter(8182):'package:flatter/src/widgets/page_view.dart':失败的断言:第96行位置7:'positions.isNotEmpty':在生成PageView之前无法访问PageController.page。E/flatter(8182):#0断言错误。doThrowNew(dart:core/runtime/liberrors\u patch.dart:40:39)E/flatter(8182):#1断言错误。throwNew(dart:core/runtime/liberror\u patch.dart:36:5)``这又是一个异常[错误:flatter/shell/common/shell.cc(184)])省道错误:未处理的异常:E/flatter(8182):'package:flatter/src/widgets/page_view.dart':失败的断言:第96行位置7:'positions.isNotEmpty':在生成PageView之前无法访问PageController.page。E/flatter(8182):#0断言错误。doThrowNew(dart:core/runtime/liberrorspatch.dart:40:39)E/flatter(8182):#1断言错误。throwNew(dart:core/runtime/liberrorspatch.dart:36:5)
这一定是您的UI中的其他内容。我在你的代码中的任何地方都看不到PageView
。
ExpansionTile(
onExpansionChanged: (e){
//Your code
},
title: Text("You title text"),
children: [
ListView.builder(
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
scrollDirection: Axis.vertical,
itemCount: items.length,
itemBuilder: (BuildContext context, int index){
return Text(items[index]);
}
)
],
),