簡體   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