以编程方式滚动相同列表时,修复列表中视图的位置

时间:2015-03-12 04:38:16

标签: android view scroll android-recyclerview

我们假设我有一个ImageView和一个TextView。这两个视图是我RecyclerView的前两个元素。 RecyclerView的其他元素属于同一类型。

  

ImageView(RecyclerView的元素0)

     

TextView(RecyclerView的元素1)

     

在element2

     

元素3

     

...

因此,通常在此方案中,如果向下滚动,ImageViewTextView会向上移动并在我继续滚动时从视线中消失。我想要的是,ImageView通过向上跳出屏幕消失,但TextView保持在屏幕顶部,即使我进一步滚动,RecyclerView的其他元素将上升,TextView将保持在屏幕顶部的固定位置。

  

--- TextView的(固定的)---

     

元素6

     

元素7

     

...(滚动)

我想到了这个并且找不到一个好的程序化解决方案,但我意识到我可以通过一点点作弊来做到这一点。

RecyclerView就像我提到的场景一样。但是,当TextView开始从顶部离开屏幕时,克隆TextView将会显示并被带到RecyclerView前面,所以即使我的真实TextView消失了在屏幕上,克隆TextView将占据一席之地。

然而,这个解决方案并不能让我满意。此外,我没有尝试我的想法,也不知道它是否会完全奏效。我搜索了一个很好的解决方案,但我找不到任何密切相关的问题。

我想知道是否有任何方法可以在不使用新视图等的情况下实现此行为。

1 个答案:

答案 0 :(得分:3)

你有没有看过像this这样的Sticky List Header库?我打赌,如果你深入研究他们的源代码,你会找到一些好的灵感。