gpt4 book ai didi

flutter - 在 CustomScrollView 中允许一点过度滚动的最佳方法

转载 作者:行者123 更新时间:2023-12-04 08:00:00 25 4
gpt4 key购买 nike

我正在制作的 UI 通常从一直滚动到底部的 strip 开始,因此它的顶部位于 View 的顶部。而且:

  • 顶部需要一个额外的空白空间,以防用户想要将内容拉下来,这样他们无需将手从手机底部移开就可以拿到它(这是一个非常基本的人体工程学功能,并且我认为我们应该期待看到它很快变得非常普遍,首先是应用程序将更多的关键功能移动到屏幕底部,例如 Firefox 的网址栏。)(目前,我正在为此使用 appBar sliver,但我可以想象一个不使用它的完整解决方案)

  • 底部可能需要额外的空白空间,只要底部 strip 中的内容不够长,无法一直滚动。否则它会显得有问题和不规则。理想情况下,我会施加一个 minHeight,这样底部的条子总是至少和屏幕一样高,但它是一条条子,所以我很确定这是不可能的/丑陋的-困难的。

我现在正在考虑的方法是,ScrollPhysics 包装器修改其 ScrollMetrics 以便 maxExtentminExtent 更大。据我所知,这将允许 CustomScrollView(给定此 ScrollPhysics)过度滚动。虽然感觉有点乱。如果首先知道是什么决定了 maxExtentminExtent 并对其进行更改,那就太好了。

最佳答案

由于缺乏更好的选择,我继续执行该计划,并制作了我自己的自定义 ScrollPhysics 类,该类允许按给定的量过度滚动,extra

    return CustomScrollView(
physics: _ExtraScrollPhysics(extra: 100 * MediaQuery.of(context).devicePixelRatio),
...

_ExtraScrollPhysics基本上只是一个扩展的 AlwaysScrollable,所有采用 ScrollMetrics 的方法重载以将其内容复制到具有 minScrollExtent 的 ScrollMetric 中,该 minScrollExtent 已被 -extra 减少,然后传递它以及父类(super class)的方法版本。事实证明,对于我描述的用例,调整 maxScrollExtent 字段不是必需的!

这有一个缺点,顶部的过度滚动发光指示器出现在内容的顶部,而不是 ScrollView 的顶部,这看起来很糟糕。 It looks like this might be fixable ,但我更喜欢一种这不是问题的方法。

关于flutter - 在 CustomScrollView 中允许一点过度滚动的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66525261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com