【问题标题】:Flutter "Incorrect use of ParentDataWidget." when using Staggered Grid View~ @_@颤振“ParentDataWidget 的使用不正确。”使用交错网格视图时~@_@
【发布时间】:2021-06-21 17:08:35
【问题描述】:
                                   @_@

我正在考虑使 GridView 内的小部件根据其动态内容高度具有不同的高度,并且这些小部件是内部带有扩展列的容器。但它随后给了我这个错误“不正确使用 ParentDataWidget”。

小部件如下所示:

Container(
      decoration: BoxDecoration(
        color: someColor,
        borderRadius: BorderRadius.circular(17),
      ),
      child: Expanded(
        child: Column(
          children: [
            ClipRRect(
              borderRadius: BorderRadius.circular(17),
              child: AspectRatio(
                aspectRatio: 5 / 3,
                child: Image.network(someImageUrl, fit: BoxFit.cover),
              ),
            ),
            SizedBox(height: 10),
            Text('Group name'),
            Text('Group desc'),
            SizedBox(height: 10),
            Expanded(
              child: Row(
                children: List.generate(
                  _group.popIds.length,
                  (_) => SizedBox(width: 50, height: 50),
                ),
              ),
            ),
            Text('Hello')
          ],
        ),
      ),
    );

这是包含这些小部件的屏幕:

Scaffold(
          body: Padding(
            padding:
                const EdgeInsets.only(left: 17.0, right: 17.0, top: 50),
            child: StaggeredGridView.countBuilder(
              crossAxisCount: 2,
              mainAxisSpacing: 10,
              crossAxisSpacing: 20,
              itemCount: 50,
              itemBuilder: (context, index) => GroupItem(),
              staggeredTileBuilder: (index) => StaggeredTile.fit(1),
            ),
          ),
        );

错误信息如下所示:

** ParentDataWidget 使用不正确。

ParentDataWidget Expanded(flex: 1) 想要将 FlexParentData 类型的 ParentData 应用于 RenderObject,该 RenderObject 已设置为接受 ParentData 类型不兼容的 ParentData。**

有没有大神可以帮我解决这个问题,我已经为此苦苦挣扎了一整天了!~@_@

【问题讨论】:

    标签: flutter gridview staggered-gridview flutter-exception


    【解决方案1】:

    这是因为您在容器内使用 Expanded。 Expanded 只能在 Column、Row 或 Flex 小部件中使用。

    在您的第一个代码 sn-p 中,删除容器内的第一个 Expanded 小部件并包裹您的列,但您可以保留包裹行的第二个 Expanded 小部件,因为此展开的小部件位于列内,然后出现错误应该消失。

    【讨论】:

    • 非常感谢您的回答,它解决了问题,但我得到了另一个错误,如下所示:“RenderFlex 子项具有非零弹性,但传入的高度约束是无限的。”和“RenderBox 未布置:'package:flutter/src/rendering/box.dart':断言失败:第 1940 行 pos 12:'hasSize'”,关于 hasSize 和约束。 @_@
    • 不客气,请考虑将其标记为您问题的答案。关于您的新错误,它是不同的,并且与您的小部件的布局方式有关。在新问题或帖子中发布导致此错误的代码,以便我们可以使用它。
    • 好的,谢谢,问题已经移到这个Url:stackoverflow.com/q/66791193/14930256
    猜你喜欢
    • 2021-04-22
    • 1970-01-01
    • 2021-10-04
    • 1970-01-01
    • 1970-01-01
    • 2019-11-24
    • 2021-01-20
    • 2020-11-18
    • 2021-04-14
    相关资源
    最近更新 更多