滚动外部滚动视图之前为内部滚动视图-Android

问题描述 投票:0回答:1

目标

layout

[当用户尝试滚动回收器视图时,外部视图(白色视图)应向上滚动(或展开)以显示更多回收器视图。


到目前为止我尝试过的事情

  1. 嵌套滚动视图:我将白色视图放置在嵌套滚动视图内。这导致回收者视图在滚动时获得优先权。因此,结果是回收者视图首先滚动到列表的末尾,然后白色视图向上滚动以显示更多回收者视图。我在嵌套滚动视图和嵌套滚动视图的线性布局上尝试了一些设置isFocusable和isFocusableOnTouch。

  2. 滚动回收者视图时,白色视图的
  3. 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
    }
}

enter image description here

android android-recyclerview android-scrollview android-nestedscrollview
1个回答
0
投票

我认为使用CoordinatorLayout的更好方法,在这里可以看到示例:https://blog.mindorks.com/using-coordinator-layout-in-android

© www.soinside.com 2019 - 2024. All rights reserved.