![](/img/trans.png)
[英]Set Different Layout Manager for Single RecylerView with multiple ViewTypes
[英]Change layout Manager programatically in recylerview android
我想在视图膨胀时更改layoutmanager stackFromEnd和reverseLayout更改。 我嵌套了 recylerview。 因此,当 recylerview 膨胀时,我需要检查 recylerview 是否有比单个屏幕更多的项目,即我有多个项目要滚动。 我将在图像中显示。
当项目从底部边缘切半时的其他情况。
在此基础上,我想更改布局。 有可能吗? 我尝试了一些堆栈溢出示例,但它不起作用。 所以有人知道如何实现那件事吗?
所以我想知道是否有任何侦听器在RecyclerView第一次完成放置其项目时调用,从而可以设置布局管理器。
我假设您有一个用于回收器视图的父视图,例如NestedScrollView
。 然后,您需要在屏幕中创建NestedScrollView
后获取它的高度
var nestedScrollViewHeight = 0
yourNestedScrollView.viewTreeObserver.addOnGlobalLayoutListener(
object : ViewTreeObserver.OnGlobalLayoutListener {
override fun onGlobalLayout() {
yourNestedScrollView.viewTreeObserver.removeOnGlobalLayoutListener(this)
nestedScrollViewHeight = yourNestedScrollView.height
}
}
)
然后你可以检查这个NestedScrollView
高度是否超过你的屏幕高度,你可以在 Activity 中使用windowManager
获取你的屏幕高度
val screenHeight = windowManager.currentWindowMetrics.bounds.height()
因此,在获得screenHeight
和nestedScrollViewHeight
您可以减去以检查nestedScrollViewHeight
是否大于screenHeight
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.