如何在 Jetpack Compose 中禁用和启用 LazyColumn/LazyRow 中的滚动?

2023-12-26

我想以编程方式动态启用和禁用滚动LazyColumn.

好像没有相关功能LazyListState或相关参数LazyColumn本身。我怎样才能在 Compose 中实现这一目标?


Since 1.2.0 userScrollEnabled范围加入 https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.2.0-alpha01 to LazyColumn, LazyRow, and LazyVerticalGrid

LazyColumn(userScrollEnabled = false) ...

回答1.1.0和早期版本:

@Ryan 的解决方案还将禁用以编程方式调用的滚动。

这是维护者提出的解决方案此功能请求 https://issuetracker.google.com/issues/201150093。它将禁用滚动,允许编程滚动以及子视图触摸。

private val VerticalScrollConsumer = object : NestedScrollConnection {
    override fun onPreScroll(available: Offset, source: NestedScrollSource) = available.copy(x = 0f)
    override suspend fun onPreFling(available: Velocity) = available.copy(x = 0f)
}

private val HorizontalScrollConsumer = object : NestedScrollConnection {
    override fun onPreScroll(available: Offset, source: NestedScrollSource) = available.copy(y = 0f)
    override suspend fun onPreFling(available: Velocity) = available.copy(y = 0f)
}

fun Modifier.disabledVerticalPointerInputScroll(disabled: Boolean = true) =
    if (disabled) this.nestedScroll(VerticalScrollConsumer) else this

fun Modifier.disabledHorizontalPointerInputScroll(disabled: Boolean = true) =
    if (disabled) this.nestedScroll(HorizontalScrollConsumer) else this

Usage:

LazyColumn(
    modifier = Modifier.disabledVerticalPointerInputScroll()
) {
    // ...
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Jetpack Compose 中禁用和启用 LazyColumn/LazyRow 中的滚动? 的相关文章

随机推荐

  • 调试时忽略 Visual Studio 中的项目

    在 Visual Studio 中 如果您有一个包含许多项目的解决方案 是否可以指示调试器忽略某些项目 在这个意义上将它们视为外部 DLL 吗 我们有很多我想调试的帮助程序代码 例如 如果我处于函数调用中 并且进入其中 我想跳过 IoC 代
  • 数组的 IsEmpty() 函数

    我想测试我的数组是否为空 我尝试使用该功能IsEmpty 但函数总是返回False 并且不要输入 if 条件 我的代码如下 Sub Freeze Dim tab freeze as variant If IsEmpty tab freeze
  • Scala mixin 到类实例

    Scala 中是否可以对类实例进行一些混合 例如 我有一些 MyClass 实例var x new MyClass我想在某些方法或特征上扩展它而不复制它 Edit 我正在寻找延伸的方法x当它被实例化之后 因此 例如在函数方法中 得到x作为参
  • Facebook 转化事件是否有类似于 Google Analytics 的回调功能?

    我在文档中找不到转化跟踪中是否有任何回调功能 https developers facebook com docs ads for websites tag api https developers facebook com docs ad
  • 使用“;”下载文件或文件名中的“#”会破坏文件名

    我有一个名为 AttachmentDownload aspx 的文件 并且 Page Load 方法内部有这样的代码 可以提供下载文件 除包含 的名称外 所有名称均可在 IE 中正常工作 或者 他们允许用户以 AttachmentDownl
  • github 搜索限制结果

    我需要在 Github 上进行大量搜索以获取论文中的统计数据 例如 我需要在 GitHub 上探索大量 Android 项目 但该网站将搜索结果限制为 1000 个 例如 还使用Java GitHub API我尝试使用该方法库org ecl
  • 从 DNX 迁移到 ASP.NET Core 2.0 时 API 丢失/更改

    我一直致力于将应用程序从过时的 DNX 迁移到 ASP NET Core 2 0 在这样做的过程中 我们发现命名空间和 API 几乎没有变化 例如Microsoft AspNet to Microsoft AspNetCore 尽管我已经能
  • android listview 显示所有可用项目,无需滚动静态标题

    我在尝试使某种布局发挥作用时遇到了一些困难 我想要一个列表 列表不必是可滚动的 但应该完整显示 但是 如果总内容高于屏幕 页面本身应该能够滚动 其中包含列表
  • ReactiveUI 与 MvvmCross

    标题说明了一切 根据您的经验 这两个框架之间的主要区别是什么 我们什么时候应该使用其中一种而不是另一种 预期用途 跨平台开发 Windows 8 iOS Android WindowsRT Mac 我在同一个跨平台解决方案中同时使用 Mvv
  • 验证类实例属性的正确方法

    有一个像这样的简单 Python 类 class Spam object init self description value self description description self value value 我想检查以下限制
  • 使用 Pandas 从 CSV 读取整数时如何优雅地回退到“NaN”值?

    使用时read csv对于 Pandas 如果我想要将给定的列转换为类型 格式错误的值将中断整个操作 而不会指示有问题的值 例如 运行如下内容 import pandas as pd import numpy as np df pd rea
  • 将字符串作为条件求值 Java

    我必须从 D B 检索一组列值并将其作为条件进行检查 例如 我会有像这样的字符串 value gt 2 4 lt value lt 6 在 D B 列中 值是一直被比较的值 我将在代码中声明一个变量值 并且我应该评估这个条件 int val
  • GoLand 的运行/调试配置窗口中“Go 工具参数”的“-i”选项是什么?

    What is the i option for Go tool arguments in GoLand s Run Debug Configurations window 取自go help build The i flag instal
  • 关闭弹出窗口时刷新父页面

    我有一个父页面 我在其中添加了搜索功能 像下面这样 function FunClick StrPriCaption var StrPriHTML if StrPriCaption AdvSearch document getElementB
  • 画布工具提示出现在画布之外?

    我使用 KineticJS 和 D3 js 制作了以下内容 我使用 KineticJS 让我在用户将鼠标悬停在其中一个点上时弹出工具提示 但是 由于画布的边界 工具提示看起来被切断 有什么办法可以让它出现而不被剪掉吗 整个代码本身非常庞大
  • Azure SQL - 用户登录失败

    我正在使用免费的 azure 订阅 设置了 SQL 服务器 v12 并在其上创建了数据库 但是 我似乎无法使用在 SQL Server 凭据期间出现提示时设置的服务器管理凭据登录 管理工作室回报 Cannot connect to
  • 本地文件的 NSURLThumbnailDictionaryKey 为空

    我想获取必须在我的应用程序中显示的文件的缩略图 我在这里使用 NSURL NSDictionary thumbnails nil BOOL success fileURL getResourceValue thumbnails forKey
  • 套接字输入和输出的单独线程

    我被分配去解决多线程 java 服务器的一些性能和随机崩溃问题 尽管线程和线程安全对我来说并不是真正的新主题 但我发现设计一个新的多线程应用程序可能比尝试调整一些遗留代码困难一半 我浏览了一些著名的书籍来寻找答案 但奇怪的是 只要我阅读并分
  • 具有多维数组的 tf.SequenceExample

    在 Tensorflow 中 我想将多维数组保存到 TFRecord 例如 1 2 3 1 2 3 2 1 由于我试图解决的任务是连续的 因此我尝试使用 Tensorflowtf train SequenceExample 当写入数据时 我
  • 如何在 Jetpack Compose 中禁用和启用 LazyColumn/LazyRow 中的滚动?

    我想以编程方式动态启用和禁用滚动LazyColumn 好像没有相关功能LazyListState或相关参数LazyColumn本身 我怎样才能在 Compose 中实现这一目标 Since 1 2 0 userScrollEnabled范围