首页 > 解决方案 > 在 NestedScrollView 中隐藏滚动视图并取而代之

问题描述

我希望在滚动 NestScrollView 时隐藏黄色的 LinearLayout。最好带有视差效果。我已经能够实现的是增加 alpha 并将可见性设置为 appBar 滚动。但我希望它下面的 recyclerView 在我滚动时占用它的空间。谢谢

我的布局

标签: javaandroidxmluser-interfacematerial-design

解决方案


我如何让它完美地工作。

1.在RecyclerView之上

添加为具有不同布局的行,使用 getItemViewType() 为第一行指定不同的视图。

2. RecyclerView 滚动时消失,有视差效果

必须覆盖 AppBar 的 addOnOffsetChangedListener(),它为我提供了 verticallOffset 变量,我用它来翻译 recyclerView 中的第一行

recyclerView.getChildAt(0).setTranslationY(verticallOffset / 2);

3. RecyclerView 消失后取而代之

仍然使用verticallOffset:

 if (alpha < -200) {
            readingsRecyclerAdapter.hideFirstRow();
        }

然后在 readingsRecyclerAdapter 我删除了行

public void hideFirstRow() {
        if (headerShowing) {
            appsList.remove(0);
            notifyItemRemoved(0);
            headerShowing = false;
        }
    }

notifyItemRemoved(0); 在这里很重要,因为它会导致 recyclerview 占用第一行空白空间。


推荐阅读