如何在Flutter中使用动态高度使Listview内部的Horizo​​ntalListView?

时间:2019-07-20 09:01:08

标签: flutter-layout

我正在开发Flutter应用程序,并且想动态调整其他ListView中ListView的高度。

我想制作ListView和内部动态高度Horizo​​ntal Listview。

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

您可以在ListViewBuilder内使用Container,它是Column的子代。

您可以设置容器的高度,它可以工作。

SingleChildScrollView(
 child :Column( 
    children :[
         Container:
              child: ListView.builder(
                              scrollDirection: Axis.horizontal,
                               itemBuilder: (context, index) {
                                             return Text('$index'),
                               },
                               itemCount = 10 ,
                      ),
              height : 100.0 ,
    ]
 ),
  scrollDirection: Axis.vertical,
)

答案 1 :(得分:0)

如果我对您的理解正确,那么我可能会为您提供解决方案。
您可以像这样将小部件包装在 LayoutBuilder 中:

LayoutBuilder(
  builder: (context, constraints) {
    return SingleChildScrollView(
      child: Column(
        children: <Widget>[
          Container(
            child: ListView.builder(
              scrollDirection: Axis.horizontal,
              itemCount: 10,
              itemBuilder: (context, index) {
                return Text('$index');
              },
            ),
            height: constraints.maxHeight * kConstant,
          ),
        ],
      ),
      scrollDirection: Axis.vertical,
    );
  },
);

kConstant是介于1和0之间的双精度值,可缩放您的身高。
这样,高空不再是绝对的,而是动态的。约束是由父窗口小部件提供的,因此constraints.maxHeight将为您提供窗口小部件树中位于LayoutBuilder之前的窗口小部件的最大高度。

希望这会有所帮助。