如何使用 CustomScrollView 功能布局子网格的动态宽度?

Posted

技术标签:

【中文标题】如何使用 CustomScrollView 功能布局子网格的动态宽度?【英文标题】:How can I layout a dynamic width of grid children with CustomScrollView capabilities? 【发布时间】:2020-04-18 06:23:15 【问题描述】:

如何使用 CustomScrollView 功能布局动态宽度的子网格?

网格的子项是 Text 类型,softWrap 属性设置为 false,因为我不希望将 Text 数据布局在多行上并更改 Text 小部件的高度。

但我无法使用 SliverGridDelegateWithMaxCrossAxisExtent 进行此设置,因此它的 CrossAxis 具有固定宽度。

这是我需要做的布局示例。

文本小部件应具有固定的高度和动态宽度,如果行需要跨越多行,则布局应允许这样做,如示例布局中的 RED TEXT。

你们推荐在这个布局设计中使用什么 Widget(或自定义包)?

非常感谢您的帮助

这是我当前的代码:

CustomScrollView(
                  slivers: <Widget>[
                    SliverGrid(
                      delegate: SliverChildListDelegate(
                        buildPage(myData), // => List<Text> Text  has (softWrap: false,)
                      ),
                      gridDelegate: SliverGridDelegateWithMaxCrossAxisExtent(
                        maxCrossAxisExtent: 60.0,
                        childAspectRatio: 1.5,
                        crossAxisSpacing: 5.0,
                        mainAxisSpacing: 5.0,
                      ),
                    ),
                  ],
                ),

【问题讨论】:

嗨@skyslar7,你找到解决方案了吗? 【参考方案1】:

我认为你需要在 Flutter 中使用灵活。它使宽度或高度动态化。这里有灵活的文档: https://api.flutter.dev/flutter/widgets/Flexible-class.html

您需要设计布局。当我看到你的照片时,

首先使用列进行上下设计或使用ListView/GridView 第二次使用灵活的行 第三次将您的项目放入灵活的小部件中

Flexible 将使您的布局如您所愿。您可以从每周的颤振小部件中搜索灵活使用或观看灵活。

【讨论】:

以上是关于如何使用 CustomScrollView 功能布局子网格的动态宽度?的主要内容,如果未能解决你的问题,请参考以下文章

Flutter CustomScrollView 在没有足够项目时滚动

Flutter CustomScrollView 自定义滑动效果

Flutter 粘合剂CustomScrollView控件

Flutter 粘合剂CustomScrollView控件

Xcode 看不到 swift 子类

具有 SliverFillRemaining 内容的 CustomScrollView 条不滚动