如何在开始滚动之前为 LazyColumn/ViewPager 设置阈值?

2023-12-08

我正在使用实验性浏览器Jetpack compose 是基于LazyColumn/Row.

我想做的是设置一些阈值,确定在开始滚动到下一页之前我需要移动手指多少。默认行为是,只要我移动手指,它就会开始滚动,但我希望有一个更大的阈值,即在发生任何视觉滚动之前需要移动手指多少。 我看过FlingBehaviour参数,但我不知道如何使用它来完成我想要的。 (或者至少增加一些页面之间翻页的“阻力”,这样就不那么敏感了)

你有什么想法吗?


该阈值由控制flingBehavior争论。

PagerDefaults.flingBehavior(pagerState)提供分页工作,目前只有动画是可配置的,因此您不能只提供自己的行为。但你可以这样包装它:

private class FlingBehaviourMultiplier(
    private val multiplier: Float,
    private val baseFlingBehavior: FlingBehavior
) : FlingBehavior {
    override suspend fun ScrollScope.performFling(initialVelocity: Float): Float {
        return with(baseFlingBehavior) {
            performFling(initialVelocity * multiplier)
        }
    }
}

@Composable
fun rememberFlingBehaviorMultiplier(
    multiplier: Float,
    baseFlingBehavior: FlingBehavior
): FlingBehavior = remember(multiplier, baseFlingBehavior) {
    FlingBehaviourMultiplier(multiplier, baseFlingBehavior)
}

Usage:

val pagerState = rememberPagerState()
HorizontalPager(
    count = 10,
    state = pagerState,
    flingBehavior = rememberFlingBehaviorMultiplier(
        multiplier = 0.5f,
        baseFlingBehavior = PagerDefaults.flingBehavior(pagerState)
    ),
    modifier = Modifier
) { page ->
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在开始滚动之前为 LazyColumn/ViewPager 设置阈值? 的相关文章

随机推荐

  • 更改 Xamarin.Forms 中背景图像的纵横比,同时保持内容居中

    在 Xamarin Forms 中 我有一个页面 其中包含一个 Picker 控件和一个 TextBox 对于该页面 我想显示背景图像 我的问题是 没有专有的方法可以在 Xamarin Forms 中设置页面背景图像的纵横比 初始代码如下所
  • openmp g++ 错误:折叠循环未完美嵌套

    我尝试编译 include
  • 如何在matlab中格式化带有前导零的整数值?

    我想通过添加前导零来格式化整数值并将其显示为字符串 例如 我有3我想将其显示为003 我想用matlab来做 Use sprintf aa sprintf 03d 3 aa will be 003 注意aa这里有一个string 看看它的文
  • 使用 jQuery 获取元素的类列表

    jQuery 中有没有一种方法可以循环遍历或将分配给元素的所有类分配给数组 ex div class Lorem ipsum dolor spec sit amet Hello World div 我将寻找一个 特殊 课程 如上面的 dol
  • SignalR 事件在部署到服务器时变得间歇性

    当通过 VS IIS Express 在本地运行时 一切正常 100 然后 当我发布到网络服务器 在网络上或在线上 时 我有一些事件因 OnConnected 而停止触发 但并非总是如此 如果我刷新它可能会触发 也可能不会 有问题的事件是
  • VBA PowerPoint 在线指南以及如何录制宏

    谁能给我推荐一本好的 PowerPoint VBA 在线指南 另外 有人对如何在 PowerPoint 中录制宏有建议吗 Microsoft 从 PowerPoint 2007 中删除了宏录制器 要查看对象的结构 请在对象中使用 Watch
  • 如何用 PHP 或 JS 删除换行符

    我已经尝试了一切来删除一些多余的 n我正在使用的网络应用程序中的字符 我希望有人以前遇到过这个问题并且知道是什么原因造成的 我所有的 JS 和 PHP 文件都是 UTF 8 编码 没有 BOM 是的 我尝试过类似的事情 In JS text
  • 如何将货币格式的文本转换为 Double 值或 NSNumber 值?

    我想将货币转换为双倍值 在我的应用程序中 我有一个显示货币的文本字段 例如 1 234 567 00 美元 我可以通过子字符串轻松删除 符号 但是有没有任何 Formatter 样式可以使其成为 Double 呢 其实当我在做的时候 var
  • 使用 jQuery 查找元素的类型

    在 jQuery 中 如果我有一个元素的引用 我如何确定它是什么类型的元素 例如 输入或下拉列表 有什么办法可以查到吗 复制 如何确定 jQuery 中匹配元素的元素类型 如果元素是输入 则以下内容将返回 true elementId is
  • 短信收件箱 - 列表视图

    您好 我正在尝试创建 SMS 应用程序 女巫在 ListView 中向我显示 SMS 收件箱 但是 如果我打开此应用程序 则没有任何操作 我只能看到带有应用程序名称的黑屏 有人可以检查我的源代码并告诉我在哪里吗 有什么问题吗 谢谢 有源代码
  • 如何检测来自 CNAME 子域的传入请求(使用 PHP 脚本)?

    我们有一个简单的基于 php 的重定向应用程序 这是一个例子 Spiderman com redirection redirect to marvel php 脚本位于 redirection 文件夹中 假设它将上述链接重定向到 marve
  • mysql和DECIMAL存储空间?

    根据我对手册的理解DECIMAL在 mysql 文档中 它指出九个数字的每个倍数需要 4 个字节 其余数字如下 number of digits leftover bytes 0 0 1 1 2 1 3 2 4 2 5 3 6 3 7 4
  • 对与另一个数组相关的数组进行排序

    我有两个数组 x and y 其中 y 是中每个元素的十位值x 现在我想排序y 但是 顺序y将不同于x的 所以 在对哪个元素进行排序后我无法判断y例如 与x 0 也许我想要 双重排序 Array Sort has 超载接受two数组 一份用
  • 更新 MySQL 中的列

    我有一张桌子table1三列和一堆行 key col col a col b 我想用一组值更新 col a 即离开col b不变 像这样 INSERT INTO table1 AS t1 key col col a VALUES k1 fo
  • 将两个 UISplitViewController 子控制器保留在第一响应者链中

    我有一个基于文档的应用程序 其中 NSSplitViewController 作为主窗口的内容视图控制器 左窗格包含带有控制器的自定义视图 该控制器实现一些菜单命令 右窗格包含一个带有控制器的标准 NSTableView 当应用程序启动时
  • 基于 Eclipse JSDT 的编辑器的内容辅助

    在 Eclipse 中 内容辅助通常由某个类实现implements IContentAssistProcessor JavaDoc example 如何实现同样的CompletionProposals 用于基于 JSDT 的编辑器 我知道
  • 如何在整个应用程序中禁用 iOS 11 拖动?

    出于安全原因 我想在整个应用程序中禁用新的 iOS 11 拖放功能 更具体地说是拖动部分 在 iOS 11 中 默认情况下 所有可以选择文本的地方 弹出窗口 文本视图 网页视图等 的文本都会发生这种情况 我不知道有什么方法可以完全禁用拖动功
  • 使用提交消息中的主题标签在 Jenkins/Hudson 中触发构建

    仅当提交消息中出现特定字符串时 是否可以触发 Hudson Jenkins 构建 例如 我想触发一个构建 通过编写如下提交消息来将我的应用程序推出到开发环境 MYPROJECT 123 修复了 MyClass java 中的 NPE 部署
  • 如何检测 iOS 应用程序是否已重新安装(从 XCode)或升级(从 AppStore)

    我们正在开发的应用程序使用应用程序包中包含的二进制文件 由于需要处理该文件 并且在某些情况下需要重写该文件 因此应用程序会在首次启动时或每当应用程序支持中缺少该文件时 都会将此文件复制到 库 应用程序支持 目录中 然后 应用程序每次启动时都
  • 如何在开始滚动之前为 LazyColumn/ViewPager 设置阈值?

    我正在使用实验性浏览器Jetpack compose 是基于LazyColumn Row 我想做的是设置一些阈值 确定在开始滚动到下一页之前我需要移动手指多少 默认行为是 只要我移动手指 它就会开始滚动 但我希望有一个更大的阈值 即在发生任