繁体   English   中英

Flutter 动态高度水平 Listivew 内垂直 Listview

[英]Flutter Dynamic Height Horizontal Listivew inside Vertical Listview

我在组装应用程序中很常见的布局时遇到了一些困难。

我有一个 ListView.builder,涉及一个列内的展开。 对于每个项目,我都有一个新的 ListView.builder(水平),但它只有在我放置一个固定高度时才有效。

有没有办法让这个水平(子)列表动态化,有几种不同的大小,而不需要固定的高度?

Expanded(
          child: ListView.builder(
            shrinkWrap: true,
            itemCount: 10,
            itemBuilder: (context, index) {
              return SizedBox(
                height: 30, //Only works with this height
                width: MediaQuery.of(context).size.width,
                child: ListView.builder(
                  shrinkWrap: true,
                  scrollDirection: Axis.horizontal,
                  itemCount: 2,
                  itemBuilder: (context, index) {
                    return Container(
                      width: MediaQuery.of(context).size.width,
                      color: index == 0 ? Colors.blue : Colors.red,
                      child: Text("Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem"),
                    );
                },),
              );
          },),
        )

PS.:我尝试过 Expanded、Flexible、InstrinctHeight,但没有任何效果。

如果这是您想要实现的目标,我可以这样做

  return Scaffold(
          body: ListView.builder(
            shrinkWrap: true,
            itemCount: 10,
            itemBuilder: (context, index) {
              return SizedBox(
                height: 30, //Only works with this height
                width: MediaQuery.of(context).size.width,
                child: ListView.builder(
                  shrinkWrap: true,
                  scrollDirection: Axis.horizontal,
                  itemCount: 2,
                  itemBuilder: (context, index) {
                    return Container(
                      width: MediaQuery.of(context).size.width,
                      color: index == 0 ? Colors.blue : Colors.red,
                      child: Text(
                          "Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem"),
                    );
                  },
                ),
              );
            },
          ),
        );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM