在向上滑动面板中使用listview.builder颤振(溢出的RenderFlex具有Axis.vertical的方向)

时间:2020-10-15 07:38:21

标签: flutter dart

我有一个向上滑动的面板,其面板是Column ..,而子代是带有包装容器的列表视图生成器..但是我遇到了这个错误

The following assertion was thrown during layout:
A RenderFlex overflowed by 2.0 pixels on the bottom.
The relevant error-causing widget was:
  Column

这是我的滑动小部件

Widget _slidingUpWidget(){
    return Container(
      child: SlidingUpPanel(
        minHeight: MediaQuery.of(context).size.height / 2,
        panel: Column(
          children: [
            userResponseWidget(),
            //caption
            textWidget(),           
            // divider
            dividerWidget(),
            //comment
            commentSectionWidget(dataComment),
            //write comment
            _floatingTextfieldWidget()

          ],
        )
      )
    );
  }

这是列表视图构建器

Widget commentSectionWidget(Comment data){
    return Container(
      child: ListView.builder(
        physics: NeverScrollableScrollPhysics(),
        scrollDirection: Axis.vertical,
        shrinkWrap: true,
        itemCount: data.data.length,
        itemBuilder: (_, index) {
          return Container(
            child: ItemComment(data.data[index]),
          );
        }
      ),
    );
  }

我尝试用Expanded()包装该容器,但它只显示内容的一半,并且不能滚动。.我也使用SingleChildScrollView(),但返回很多错误。.

有人可以帮助修复它吗?

1 个答案:

答案 0 :(得分:0)

SingleChildSrollView上方添加Column,现在它应该可以为您工作了。

代码:

  Widget _slidingUpWidget(){
    return Container(
        child: SlidingUpPanel(
            minHeight: MediaQuery.of(context).size.height / 2,
            panel: SingleChildScrollView(
              child: Column(
                children: [
                  userResponseWidget(),
                  //caption
                  textWidget(),
                  // divider
                  dividerWidget(),
                  //comment
                  commentSectionWidget(dataComment),
                  //write comment
                  _floatingTextfieldWidget()

                ],
              ),
            )
        )
    );
  }