另一个ListView内部的动态ListView高度

孤独的狼

我需要在另一个ListView中创建一个动态的ListView高度。我来的所有答案都没有真正回答它。我已经做了一个简单的示例来说明我要做什么,因此您只需复制并粘贴即可尝试并使用它。我在子ListView上遇到问题,我需要根据其中的项目数使它增大或缩小(程序中注释的问题)

class Test extends StatefulWidget {
  @override
  _TestState createState() => _TestState();
}

List<List<bool>> subList = [
  [true, true],
  [true]
];

class _TestState extends State<Test> {
  @override
  Widget build(BuildContext context) {
    return ListView.separated(
        itemBuilder: (BuildContext context, int index) {
          return Column(
            children: <Widget>[
              ListTile(
                trailing: IconButton(
                  icon: Icon(Icons.add),
                  onPressed: () {
                    setState(() {
                      subList[index].add(true);
                    });
                  },
                ),
                title: Text(
                  'item $index',
                  style: TextStyle(fontWeight: FontWeight.w600),
                ),
              ),
              Container(
                height: 100, // <--- this needs to be dynamic
                child: ListView.builder(
                  physics: NeverScrollableScrollPhysics(),
                  itemBuilder: (BuildContext context, int subIndex) {
                    return TestRow(
                        text: 'sub$subIndex',
                        onRemove: () {
                          setState(() {
                            subList[index].removeAt(subIndex);
                          });
                        });
                  },
                  itemCount: subList[index].length,
                ),
              )
            ],
          );
        },
        separatorBuilder: (BuildContext context, int index) => Divider(),
        itemCount: subList.length);
  }
}

class TestRow extends StatelessWidget {
  final String text;
  final Function onRemove;

  const TestRow({this.onRemove, this.text});
  @override
  Widget build(BuildContext context) {
    return Container(
      padding: EdgeInsets.symmetric(horizontal: 20),
      child: Row(
        mainAxisAlignment: MainAxisAlignment.spaceBetween,
        children: <Widget>[
          Text(text),
          IconButton(
            icon: Icon(Icons.remove),
            onPressed: onRemove,
          )
        ],
      ),
    );
  }
}

顺便说一句,我设法通过将容器(注释部分)的高度更改height: 50.0 * subList[index].length为副标题的高度50来解决该问题。我仍在寻找一种正确的方法来执行此操作,而无需硬编码图块的高度并进行计算

这是该项目的视频,以及解决方法

在此处输入图片说明

宙斯

尝试将收缩包装属性设置为true并删除容器

                  ListView.builder(
                    shrinkWrap: true, //<-- Here
                    physics: NeverScrollableScrollPhysics(),
                    itemBuilder: (BuildContext context, int subIndex) {
                      return TestRow(
                          text: 'sub$subIndex',
                          onRemove: () {
                            setState(() {
                              subList[index].removeAt(subIndex);
                            });
                          });
                    },
                    itemCount: subList[index].length,
                  )

输出:

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用ListView选择来确定Android中另一个ListView中的列表?

来自分类Dev

如何从另一个片段更新一个片段的ListView?

来自分类Dev

将ListView项从一个可折叠对象拖到另一个

来自分类Dev

Android-将项目从一个ListView添加到另一个ListView?

来自分类Dev

将用户的选择从一个ListView移到另一个ListView Java FX

来自分类Dev

滚动时ListView覆盖另一个布局

来自分类Dev

如何在另一个模块内部动态注入一个模块?

来自分类Dev

Android ListView覆盖另一个视图

来自分类Dev

如何将ListView上的数据动态传递给另一个活动

来自分类Dev

将ListView Item从一个listView拖放到另一个

来自分类Dev

绑定listView以在另一个listView中显示与其关联的数据

来自分类Dev

绑定listView以在另一个listView中显示与其关联的数据

来自分类Dev

ListView ItemsSource依赖于另一个ListView的SelectedItem

来自分类Dev

使用另一个片段中的数据更新一个片段中的listview

来自分类Dev

将ListView项从一个可折叠对象拖到另一个

来自分类Dev

将ListView行数据添加到另一个ListView并保存?安卓

来自分类Dev

保存ListView项目并在另一个ListView中使用它吗?

来自分类Dev

ListView onItemClick启动另一个ListView-带有片段

来自分类Dev

从一个ListView移到另一个ListView

来自分类Dev

在另一个内部选择

来自分类Dev

如何在另一个模块内部动态注入一个模块?

来自分类Dev

WPF(MVVM)中的telerik GridView(或另一个listview)内的ListView

来自分类Dev

Android ListView覆盖另一个视图

来自分类Dev

将ListView Item从一个listView拖放到另一个

来自分类Dev

根据另一个UIViews高度动态更改情节提要中UIView的高度

来自分类Dev

通过索引号将一个listview项目复制到另一个listview

来自分类Dev

在另一个模型中访问 listView 模型

来自分类Dev

如何在另一个 ListView 中设置第一个 ListView 的数据?

来自分类Dev

我可以在另一个 ListView 的 HeaderItem 中添加 ListView 或 GridView 吗?[UWP]

Related 相关文章

  1. 1

    如何使用ListView选择来确定Android中另一个ListView中的列表?

  2. 2

    如何从另一个片段更新一个片段的ListView?

  3. 3

    将ListView项从一个可折叠对象拖到另一个

  4. 4

    Android-将项目从一个ListView添加到另一个ListView?

  5. 5

    将用户的选择从一个ListView移到另一个ListView Java FX

  6. 6

    滚动时ListView覆盖另一个布局

  7. 7

    如何在另一个模块内部动态注入一个模块?

  8. 8

    Android ListView覆盖另一个视图

  9. 9

    如何将ListView上的数据动态传递给另一个活动

  10. 10

    将ListView Item从一个listView拖放到另一个

  11. 11

    绑定listView以在另一个listView中显示与其关联的数据

  12. 12

    绑定listView以在另一个listView中显示与其关联的数据

  13. 13

    ListView ItemsSource依赖于另一个ListView的SelectedItem

  14. 14

    使用另一个片段中的数据更新一个片段中的listview

  15. 15

    将ListView项从一个可折叠对象拖到另一个

  16. 16

    将ListView行数据添加到另一个ListView并保存?安卓

  17. 17

    保存ListView项目并在另一个ListView中使用它吗?

  18. 18

    ListView onItemClick启动另一个ListView-带有片段

  19. 19

    从一个ListView移到另一个ListView

  20. 20

    在另一个内部选择

  21. 21

    如何在另一个模块内部动态注入一个模块?

  22. 22

    WPF(MVVM)中的telerik GridView(或另一个listview)内的ListView

  23. 23

    Android ListView覆盖另一个视图

  24. 24

    将ListView Item从一个listView拖放到另一个

  25. 25

    根据另一个UIViews高度动态更改情节提要中UIView的高度

  26. 26

    通过索引号将一个listview项目复制到另一个listview

  27. 27

    在另一个模型中访问 listView 模型

  28. 28

    如何在另一个 ListView 中设置第一个 ListView 的数据?

  29. 29

    我可以在另一个 ListView 的 HeaderItem 中添加 ListView 或 GridView 吗?[UWP]

热门标签

归档