Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 颤振,如何设置列表视图项的最大高度_Flutter_Flutter Layout - Fatal编程技术网

Flutter 颤振,如何设置列表视图项的最大高度

Flutter 颤振,如何设置列表视图项的最大高度,flutter,flutter-layout,Flutter,Flutter Layout,下面是我尝试过的 SizedBox( width: MediaQuery.of(context).size.width * 0.88, height: MediaQuery.of(context).size.height * 0.42, child: ListView.builder( itemCount: 10,

下面是我尝试过的

         SizedBox(
           width: MediaQuery.of(context).size.width * 0.88,
           height: MediaQuery.of(context).size.height * 0.42,
             child: ListView.builder(
                   itemCount: 10,                          
                   itemBuilder: (BuildContext context, int index) {
                            return _buildListItem();
                         }),
                   )
和列表小部件

 Widget _buildListItem() {
    return ConstrainedBox(
      constraints: BoxConstraints(
        minHeight: 20,
          maxHeight: 120),
       child:Container(child:Text("Looooongggg textttttttttt 
              the text size is alwayysss different "),
       ),}
我想动态设置列表视图项的大小,但最大高度固定为120。换句话说,不管文本有多长,容器也不希望增加到120或更多

此代码始终仅显示最大高度的容器。不管字母有多短


如何实现这一点?

您可以通过将“滚动物理”设置为“永不滚动物理”来实现。通过这样做,列表视图将占据足够的高度,以便其所有子视图都可以放入其中。 例如:-

    ...
    ListView.builder(
      physics:NeverScrollableScrollPhysics(),//this line would the change                               
      itemCount: 10,                          
      itemBuilder: (BuildContext context, int index) {
              return _buildListItem();
            }),
           ),
    ...

试试IntrinsicHeight小部件

Widget _buildListItem() {
    return ConstrainedBox(
      constraints: BoxConstraints(
        minHeight: 20,
          maxHeight: 120),
       child: IntrinsicHeight(child:Container(child:Text("Looooongggg textttttttttt 
              the text size is alwayysss different "),
       )),}

使用
Container
并为
BoxConstraints

Container(
        child: ListView.builder(itemBuilder: (BuildContext context, index) {
            return Container(
              constraints: BoxConstraints(minHeight: 20, maxHeight: 40),
              color: Colors.red,
              child: Divider(),
            );
        }, itemCount: itemsList.length,),
      ),
输出:


谢谢,但必须滚动将列表视图包装在一个子滚动视图小部件中,并在列表视图中启用收缩包装真。这将对您有所帮助。非常感谢。我会参考的,谢谢!它工作得很好。我只是想知道,除了这个,你还知道别的方法吗?我只是问我的学习目的。如果你想不起来,你就不用回答了。没人,对不起((这与我在问题中提出的代码几乎相同。除了容器和受约束的属性来回交换。这将保持最小和最大高度约束,这项工作我只是按照您的建议进行了。但它不起作用。它始终显示最大高度这可能是因为您的孩子太大,它的最多40分钟