-
Notifications
You must be signed in to change notification settings - Fork 35
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
请问ComposePager里使用了lazyrow时能禁止直接fling到下一页吗 #49
Comments
用着感觉确实是有点问题,现在还没有这个api,我看看怎么能改一下 |
好的,我看了下源码,应该是LazyRow滑动到最左或最右突然停止时,速度还有余量,父控件监听的performFling方法就会收到回调,这里面处理了Pager在fling手势时的滑动逻辑,根据initialVelocity值的判断触发翻页了。 |
试了下不好搞定,你要是着急用的话可以自己改一下NestedComposePager提个pr,或者先用原生的,或者先用官方的,最近正在忙别的,没太多时间搞 |
好的,我有空研究下。 目前Compose Pager这一块真的是有点坑啊。。 |
今天发了compose1.4了,你可以再试试 |
多谢提醒,满怀期待得试了一下,还是没解决哦。只有不使用LazyRow的时候是正常的,一使用还是会卡在中间一半停顿1s左右 |
2333,还是新东西不够完善,先用原生吧 |
有啥解决办法没? |
暂时没有直接的方案,不过你可以在有Lazy的page设置userEnable为false |
我之前已经测试了设置userEnable为false,当LazyRow滑动到最左边的时候松开后,再重新向左滑动会出现左边的界面展示一点后,userEnable禁止滑动生效,到账界面左边的界面展示一点出现 |
这句话是不是有些错别字?看不太明白,试了userEnable为false后应该是滑动不到别的page了 |
就是我通过LazyRow的LazyListState的isScrollInProgress来控制userEnable,会有一点延迟,导致pager会滑动一点才会触发userEnable=false |
val state = rememberLazyListState()
val flingBehavior = ScrollableDefaults.flingBehavior()
LazyColumn(
verticalArrangement = Arrangement.spacedBy(10.dp),
flingBehavior = object : FlingBehavior {
override suspend fun ScrollScope.performFling(initialVelocity: Float): Float {
flingBehavior.apply {
performFling(initialVelocity)
}
return 0f
}
},
... 我试了下, state.isScrollInProgress 的状态会包含fling状态,所以会造成有点延迟 |
private class NoOpNestedScrollConnection : NestedScrollConnection { |
现在滑动lazyrow时如果到头了,会直接继续滑动到下一页,view中的viewpager是横向列表滑动到头了就停止,再滑动才会到下一页。请教下这个能够开发个设置的api吗?非常感谢!
The text was updated successfully, but these errors were encountered: