【发布时间】:2015-08-29 02:28:48
【问题描述】:
我现在在玩RecyclerView,偶然发现了以下问题。当 RecyclerView 的 LinearLayoutManager 决定视图是否离开屏幕(因此它可以成为回收器)时,它不会考虑视图的 translationY。
所以本质上,当我向上滚动并看到带有正面 translationY 的视图时,LinearLayoutManager 认为该视图不在屏幕上,但实际上它仍然可见(因为它被向下翻译了)。
我注意到LinearLayoutManager 做出此决定的方式是查看getDecoratedBottom(View),因此我尝试覆盖getDecoratedBottom(View) 以包括翻译。不幸的是,它完全打乱了布局——当我们布局新项目时也会使用这种方法,因此新项目会得到额外的翻译(在现有项目之上)..
有没有简单的方法告诉LinearLayoutManager 在决定回收视图而不从头开始重新实现LayoutManager 时查看translation 属性?
【问题讨论】:
-
您找到解决问题的方法了吗?
-
@ZakharovRoman 是的......分叉了 LinearLayoutManager 实现并稍微修改了它的逻辑以包括翻译。但没有什么“开箱即用”可以真正解决这个问题。
-
好的,我会试试的。谢谢
标签: android android-support-library android-recyclerview