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

Fix the position of a View that is in the list while scrolling the same list, programmatically

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

ImageView(element 0 of RecyclerView)

TextView(element 1 of RecyclerView)

element2

element3

...

所以,通常在这种场景中,如果您向下滚动,ImageViewTextView 将向上移动并在我继续滚动时从视线中消失。我想要的是,ImageView 通过离开屏幕消失,但 TextView 留在屏幕顶部,即使我进一步滚动,RecyclerView 的其他元素将上升,TextView 将停留在屏幕顶部的固定位置。

---TextView(FIXED)---

element6

element7

...(scrolling)

我考虑过这个问题,但找不到一个好的编程解决方案,但我意识到我可以通过一些作弊来做到这一点。

RecyclerView 将像我提到的 场景 一样工作。但是当 TextView 开始从顶部离开屏幕时,一个克隆 TextView 将会出现并被带到 RecyclerView 的前面,所以即使我的真实 TextView 从屏幕上消失了屏幕上,克隆 TextView 将保留其位置。

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

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

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