不能将 ListView 放在 Column 中颤动?

Posted

技术标签:

【中文标题】不能将 ListView 放在 Column 中颤动?【英文标题】:Cannot put ListView inside Column in flutter? 【发布时间】:2021-05-02 07:05:04 【问题描述】:

我需要列内的列表视图(它是 SingleChildScrollView 的子视图),但它没有显示出来!

import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';

class BalanceScreen extends StatelessWidget 
  @override
  Widget build(BuildContext context) 
    return Scaffold(
      body: SingleChildScrollView(
        child: Column(
          children: [
            Padding(padding: const EdgeInsets.symmetric(vertical: 24), child: Center(child: Text('15 960 UZS',),),),
            Container(height: 48, alignment: Alignment.centerLeft, padding: EdgeInsets.symmetric(horizontal: 24), 
              child: Row(children: [Text('Refill balance',), Spacer(), FaIcon(FontAwesomeIcons.chevronRight, size: 15,),],),),
            
            ///this is causing problem! But i need listview here
            ListView(
              children: [
                Text('some text 1'),
                Text('some text 2'),
              ],
            )
          ],
        ),
      ),
    );
  

这显示在终端中:

【问题讨论】:

【参考方案1】:

SingleChildScrollView 应该被移除,ListView 应该被 Expanded 小部件包裹

 Expanded(   
      child:ListView(
              children: [
                Text('some text 1'),
                Text('some text 2'),
              ],
            )
       )

由于 ListView 的高度是无限的,并且 Column 小部件想要孩子的高度值。它给出了一个 hasSize 期望

【讨论】:

扩展没有帮助,但是容器对我不起作用,我需要在 ListView 中使用 ListView @Akbar Pulatov ListView 我认为 ListView 不是一个好习惯。如果你能解释你的主要目的是什么,我会建议一些其他的解决方案。 这对于重叠重量来说是非常好的解决方案【参考方案2】:

在 ListView 中添加 shrinkWrap: true 应该可以解决错误

【讨论】:

它暂时完成了这项工作,但列表变得不可滚动。我删除了 SingleChildScrollView 并用 Expanded 小部件包装了 ListView。

以上是关于不能将 ListView 放在 Column 中颤动?的主要内容,如果未能解决你的问题,请参考以下文章

Flutter - 另一个Listview内的Listview.builder

如何将列表视图与其他小部件一起使用?

如何将listview的textview和edittext放在布局中

如何将第一个 Arraylist 放在 Item 中,将第二个 Arraylist 放在 SubItem 中(在 ListView 中)?

Flutter中Column嵌套ListView报错处理方案

Flutter:ListView inside Column inside Column