android - 在 Scroll RecyclerView 上隐藏/显示多个 View

标签 android

我有这样的布局:

enter image description here

我想实现该功能:当用户向下滚动 RecyclerView 时,他看到的两件事是 ToolbarFilterPaneltitleimage 是隐藏的,当他向上滚动到 recyclerview 的开头时 titleimage 出现。

这是我的HiddingScrollListener:

public abstract class HidingScrollListener extends RecyclerView.OnScrollListener {
    private static final float HIDE_THRESHOLD = 10;
    private int scrolledDistance = 0;
    private boolean controlsVisible = true;

    public HidingScrollListener() {

    }

    @Override
    public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
        super.onScrollStateChanged(recyclerView, newState);

    }

    @Override
    public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
        super.onScrolled(recyclerView, dx, dy);


        if (scrolledDistance > HIDE_THRESHOLD && controlsVisible) {
            onHide();
            controlsVisible = false;
            scrolledDistance = 0;
        } else if (scrolledDistance < -HIDE_THRESHOLD && controlsVisible) {
            onShow();
            controlsVisible = true;
            scrolledDistance = 0;
        }

        if((controlsVisible && dy>0) || (!controlsVisible && dy<0)) {
            scrolledDistance += dy;
        }


    }


    public abstract void onShow();
    public abstract void onHide();

}

我在 activity 中实现了这个 listener:

 mRecyclerView.addOnScrollListener(new HidingScrollListener() {
            @Override
            public void onShow() {
            }

            @Override
            public void onHide() {
                mTitle.setVisibility(View.GONE);
                mImageView.setVisibility(View.GONE);
            }

        });

我不知道如何捕捉 RecyclerView 何时开始以及如何在这种情况下显示 titleimage。我有一个问题:当我向下滚动时,如何将 FilterPanel 固定在 Toolbar 下?

无论如何,谢谢你!

最佳答案

您应该使用 android 设计支持库中的 CoordinatorLayout。 此布局在其子事件(最常见的滚动事件)之间进行协调。这是一个教程:https://guides.codepath.com/android/Handling-Scrolls-with-CoordinatorLayout

关于android - 在 Scroll RecyclerView 上隐藏/显示多个 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35157949/

相关文章:

java - 按下主页按钮时如何取消倒计时器?

android - 如何在不影响长度较小的数据的情况下减少html css中冗长数据的宽度?

android - Lollipop 前的 FloatingActionButton 阴影

android - 当用户触摸 recyclerview 项目时缩放动画

java - Android 应用程序未从市场运行,但推送 apk 有效

android - 在运行时从 Android 主题获取默认属性值?

android - 从 ListView 移动到第二个 Activity 的内容时不显示

android - 当包含 textColor 的样式应用于 textView 的 textAppearance 时,文本的颜色没有改变

android - Gradle - 基于 buildType 更改 Artifact repoKey

android - 无法解析 setOnClickListener 中的变量