java - 在 NestedScrollView 中隐藏滚动视图并取而代之
问题描述
我希望在滚动 NestScrollView 时隐藏黄色的 LinearLayout。最好带有视差效果。我已经能够实现的是增加 alpha 并将可见性设置为 appBar 滚动。但我希望它下面的 recyclerView 在我滚动时占用它的空间。谢谢
解决方案
我如何让它完美地工作。
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 占用第一行空白空间。
推荐阅读
- ios - 使用 xcframeworks 运行我的项目时出现脚本错误“从 ArcGIS 致命错误中提取 arm64:lipo:输入文件”
- php - php工匠路线:列出错误异常
- ios - Xcode 12.5 调试器自 macOS Big Sur 11.3 起运行缓慢(本机 Swift 项目)
- java - 如何在java中提取前两个字符和后两个字符之间的字符串?
- time - 如何验证时间是否在SSRS中的时间范围内
- javascript - 无法合并两个对象数组
- kubernetes - 工作节点上的 kubernetes 内存承诺限制是什么?
- javascript - 理解 JavaScript 中的逻辑非运算符
- opencv - 删除“从区域图像中的文本和地图标记”?
- java - 给定一个无限序列,将其分解为多个区间,并返回一个新的无限序列,其中包含每个区间的平均值