首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >constraints.hasBoundedHeight':不是真的颤动

constraints.hasBoundedHeight':不是真的颤动
EN

Stack Overflow用户
提问于 2019-02-20 03:58:10
回答 3查看 10.3K关注 0票数 5

我正在堆叠小部件,我希望它是可滚动的,所以我使用了一个listview,我得到了这个错误(constraints.hasBoundedHeight':is not true flutter),我在某个地方看到listview不能放在listview中,所以我把它改成了Column,但我仍然得到了同样的错误。下面是我的代码。谢谢。

代码语言:javascript
复制
ListView homeList(){
var listView = ListView(
  shrinkWrap: true,
  children: <Widget>[
    _imageSlider(),

    Padding(
      padding: EdgeInsets.only(top: 15.0, bottom: 15.0, left: 15.0),
      child: Text("Trending", style: TextStyle(color: Colors.white, fontSize: 15.0),),
    ),

   Container(
     child: FutureBuilder(
       future: _trendingListImages(),
         builder: (BuildContext context, AsyncSnapshot async){
           if(async.data == null){
           return ColorLoader3(
          radius: 20.0,
          dotRadius: 5.0,
           );
          }else{
            return ListView.builder(
                shrinkWrap: true,
                scrollDirection: Axis.horizontal,
                itemCount: async.data.length,
                itemBuilder: (BuildContext context, int position) {
                  return Column(
                    crossAxisAlignment: CrossAxisAlignment.center,
                    mainAxisSize: MainAxisSize.min,
                    children: <Widget>[
                      Card(
                        elevation: 18.0,
                        shape: RoundedRectangleBorder(
                            borderRadius: BorderRadius.all(Radius.circular(10.0))),
                        child: Image.network(
                          "http://image.tmdb.org/t/p/w500/"+async.data[position].backdropPath,
                          fit: BoxFit.cover,
                          height: 200.0,
                          width: 130.0,
                        ),
                        clipBehavior: Clip.antiAlias,
                        margin: EdgeInsets.all(8.0),
                      ),
                      Text(
                        async.data[position].title,
                        style: TextStyle(fontSize: 20.0, fontWeight: FontWeight.bold),
                      )
                    ],
                  );
                });
           }
         }
     ),
   )
  ],
);

return listView;}
EN

回答 3

Stack Overflow用户

发布于 2020-04-23 09:13:14

对我来说,只要用容器包装CustomScrollView或ListView就行了。如下所示:

代码语言:javascript
复制
 Container(
                margin: EdgeInsets.all(5.0),
                height: 295.0,
                width: 333.0,
                child: CustomScrollView(),
              ),
票数 5
EN

Stack Overflow用户

发布于 2019-02-22 01:47:42

因此,我最终通过执行以下操作解决了此特定方法的问题:

将容器的宽度和高度封装在container;

  • giving中的
  1. ;将其添加到ListView.

代码如下:

代码语言:javascript
复制
    Widget _featuredListHorizontal() {   
      return Container(
        margin: const EdgeInsets.symmetric(vertical: 20.0),
        height: 300.0,
        child: FutureBuilder(
          future: _trendingListImages(),
          builder: (BuildContext context, AsyncSnapshot listData) {
            if (listData == null) {
              return ColorLoader3(
                radius: 20.0,
                dotRadius: 5.0,
              );
            } else {
              return ListView.builder(
                shrinkWrap: true,
                physics: ClampingScrollPhysics(),
                scrollDirection: Axis.horizontal,
                itemCount: listData.data.length,
                itemBuilder: (BuildContext context, int position) {
                  return Column(
                    crossAxisAlignment: CrossAxisAlignment.center,
                    mainAxisSize: MainAxisSize.min,
                    children: <Widget>[
                      Card(
                        elevation: 18.0,
                        shape: const RoundedRectangleBorder(
                            borderRadius:
                            BorderRadius.all(Radius.circular(10.0))),
                        clipBehavior: Clip.antiAlias,
                        margin: const EdgeInsets.all(8.0),
                        child: Image.network(
                          "http://image.tmdb.org/t/p/w500/${listData.data[position].backdropPath}",
                          fit: BoxFit.cover,
                          height: 200.0,
                          width: 230.0,
                        ),
                      ),
                      Text(
                        listData.data[position].title,
                        style: TextStyle(
                            fontSize: 12.0,
                            fontWeight: FontWeight.bold,
                            color: Colors.white),
                      ),
                    ],
                  );
                },
              );
            }
          },
        ),   
      ); 
    }
票数 3
EN

Stack Overflow用户

发布于 2022-01-03 19:49:24

*用容器包装你内部的listview,并给它一个高度。***

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54774024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档