Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 动态ListView中的ListView(分页)_Flutter_Dart - Fatal编程技术网

Flutter 动态ListView中的ListView(分页)

Flutter 动态ListView中的ListView(分页),flutter,dart,Flutter,Dart,我对flatter还是个新手,我正在尝试创建一个注释列表部分,子注释可以嵌套在父注释中 我所做的是在动态ListView中创建一个ListView。在本例中,我使用第三方库PagewiseListView进行延迟加载。但是在建立列表时出现了一些错误 @override Widget build(BuildContext context) { return Scaffold( body: pageWiseBuilder(context, _story.kids ?? []

我对flatter还是个新手,我正在尝试创建一个注释列表部分,子注释可以嵌套在父注释中

我所做的是在动态ListView中创建一个ListView。在本例中,我使用第三方库PagewiseListView进行延迟加载。但是在建立列表时出现了一些错误

 @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: pageWiseBuilder(context, _story.kids ?? [], PAGE_SIZE),
    );
  }

  Widget pageWiseBuilder(BuildContext context, List<int> list, int pageSize) {
    if (list != null && list.length > 0) {
      return PagewiseListView(
        padding: EdgeInsets.all(15.0),
        pageSize: pageSize,
        itemBuilder: this.itemBuilder,
        pageFuture: (pageIndex) =>
            _repository.fetchComments(list, pageIndex * pageSize, pageSize),
      );
    } else {
      return Container();
    }
  }

  Widget itemBuilder(BuildContext context, Comment entry, int index) {
    return Column(
      children: <Widget>[
        ListTile(
          title: Text(entry.by ??= ""),
          subtitle: Html(
            data: unescape.convert(entry.text ??= ""),
            useRichText: true,
            onLinkTap: (url) {
              _launchURL(url);
            },
            showImages: true,
            renderNewlines: true,
          ),
        ),
        Divider(),
        Column(
          mainAxisSize: MainAxisSize.min,
          mainAxisAlignment: MainAxisAlignment.spaceBetween,
          children: <Widget>[
            Expanded(
              child: SizedBox(height: 200.0,
                child: ListView.builder(
                  physics: ClampingScrollPhysics(),
                  shrinkWrap: true,
                  itemCount: 5,
                  itemBuilder: (context, index) {
                    return Padding(
                      padding: EdgeInsets.only(top: 8.0),
                      child: Text('Nested list item $index'),
                    );
                  },
                ),
              ),
            ),
          ],
        ),
      ],
    );
  }
@覆盖
小部件构建(构建上下文){
返回脚手架(
正文:pageWiseBuilder(上下文,_story.kids???[],页面大小),
);
}
小部件pageWiseBuilder(BuildContext上下文、列表、intPageSize){
if(list!=null&&list.length>0){
返回PagewiseListView(
填充:所有边缘设置(15.0),
pageSize:pageSize,
itemBuilder:this.itemBuilder,
pageFuture:(pageIndex)=>
_repository.fetchComments(列表,页面索引*页面大小,页面大小),
);
}否则{
返回容器();
}
}
Widget itemBuilder(构建上下文、注释条目、int索引){
返回列(
儿童:[
列表砖(
标题:文本(entry.by???”),
字幕:Html(
数据:unescape.convert(entry.text???”),
useRichText:对,
onLinkTap:(url){
_启动url(url);
},
showImages:没错,
renderNewlines:是的,
),
),
分隔符(),
纵队(
mainAxisSize:mainAxisSize.min,
mainAxisAlignment:mainAxisAlignment.spaceBetween,
儿童:[
扩大(
子项:SizedBox(高度:200.0,
子项:ListView.builder(
物理:ClampingScrollPhysics(),
收缩膜:对,
物品计数:5,
itemBuilder:(上下文,索引){
返回填充(
填充:仅限边缘设置(顶部:8.0),
子项:文本(“嵌套列表项$index”),
);
},
),
),
),
],
),
],
);
}
I/flatter(885):引发了另一个异常:RenderFlex children 具有非零弹性,但传入的高度约束是无界的

I/flatter(885):引发了另一个异常:RenderBox没有 布局:RenderFlex#a1031 relayoutBoundary=up6 NEEDS-PAINT 需要-合成-比特-更新

I/flatter(885):引发了另一个异常:RenderBox没有 布局:RenderFlex#11980 relayoutBoundary=up5 NEEDS-PAINT 需要-合成-比特-更新

I/flatter(885):引发了另一个异常:RenderFlex children 具有非零弹性,但传入的高度约束是无界的

I/flatter(885):引发了另一个异常:RenderBox没有 布局:RenderFlex#a33b5 relayoutBoundary=up6-PAINT 需要-合成-比特-更新

I/flatter(885):引发了另一个异常:RenderBox没有 布局:RenderFlex#48c2a relayoutBoundary=up5 NEEDS-PAINT 需要-合成-比特-更新

I/flatter(885):引发了另一个异常:RenderBox没有 布局:渲染绘制边界#d6726重新绘制边界=up4需要绘制 需要-合成-比特-更新

I/flatter(885):引发了另一个异常: “包:flatter/src/rendering/sliver\u multi\u box\u adapter.dart”:失败 断言:第549行第12位:“child.hasSize”:不正确

I/flatter(885):引发了另一个异常:NoSuchMethodError: 对null调用了方法“>”

I/flatter(885):引发了另一个异常: “包:flatter/src/rendering/sliver\u multi\u box\u adapter.dart”:失败 断言:第549行第12位:“child.hasSize”:不正确


我认为您需要删除代码中的任何灵活部分,这对我很有用。

您的ListView必须使用至少具有相同高度的小部件包装

  Container(
    height: 100,
    child: ListView(
            scrollDirection: Axis.horizontal,
            children: <Widget>[],
            ),
 ),
容器(
身高:100,
子:ListView(
滚动方向:轴水平,
儿童:[],
),
),

您是否尝试删除扩展的小部件?(在你的专栏中)这个库以前工作过吗?@MarianoZorrilla是的,我尝试过删除扩展的和大小合适的小部件,但没有成功。只有删除嵌套的ListView时,列表才会工作。您是否尝试将CustomScrollView与SliverList一起使用?这应该允许您在另一个列表视图中使用列表视图。@MarianoZorrilla是的,我已经尝试过了,它给出了相同的错误。