Jun*_*ung 8 android android-jetpack-compose
如标题所示,Android Compose Pager 布局在v0.19.0之后删除了DragEnabled。还有其他方法可以禁用拖动寻呼机吗?
指南: https: //google.github.io/accompanist/pager/
Phi*_*hov 20
从 Accompanist 0.24.1-alpha开始,它需要 Compose 版本1.2.0-alpha02或更高版本,userScrollEnabled因此添加了参数:
HorizontalPager(
userScrollEnabled = false
) {
}
Run Code Online (Sandbox Code Playgroud)
它需要 Compose 1.2.0-alpha01,因为在此版本中,相同的功能已添加到位于 Accompanist Pager 下的LazyColumn/ 。LazyRow
如果您使用的是 Compose 1.1.0 或更早版本,则可以使用以下解决方案:
从0.19.0版开始,伴奏寻呼机已被重写为基于LazyRow和LazyColumn。
惰性视图暂时不支持禁用滚动,您可以为此问题加注星标,以引起更多人对该问题的关注并关注更新。
现在有一个解决方法:
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
Run Code Online (Sandbox Code Playgroud)
用法:
HorizontalPager(
count = 10,
modifier = Modifier.disabledHorizontalPointerInputScroll()
) {
//...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4770 次 |
| 最近记录: |