目标
[当用户尝试滚动回收器视图时,外部视图(白色视图)应向上滚动(或展开)以显示更多回收器视图。
到目前为止我尝试过的事情
嵌套滚动视图:我将白色视图放置在嵌套滚动视图内。这导致回收者视图在滚动时获得优先权。因此,结果是回收者视图首先滚动到列表的末尾,然后白色视图向上滚动以显示更多回收者视图。我在嵌套滚动视图和嵌套滚动视图的线性布局上尝试了一些设置isFocusable和isFocusableOnTouch。
Translate Y:在这里,我在回收者视图上设置了滚动侦听器,并且当滚动视图时,我也用translatedY
来获得白色视图的dy
。这几乎实现了我想要的。但是,当缓慢滚动回收器视图时,回收器视图中的项目会变得“糊涂”(不稳定的跳转位置)。
此代码:
var yPos = 200
recyclerView.addOnScrollListener(object : OnScrollListener() {
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
super.onScrolled(recyclerView, dx, dy)
yPos -= dy
if (yPos >= 0)
whiteView.animate().translationY(yPos).duration = 0
}
}
我认为使用CoordinatorLayout的更好方法,在这里可以看到示例:https://blog.mindorks.com/using-coordinator-layout-in-android