以编程方式在滚动同一列表时修复列表中视图的位置
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
...
所以,通常在这种场景中,如果您向下滚动,ImageView
和 TextView
将向上移动并在我继续滚动时从视线中消失。我想要的是,ImageView
通过离开屏幕消失,但 TextView
留在屏幕顶部,即使我进一步滚动,RecyclerView
的其他元素将上升,TextView
将停留在屏幕顶部的固定位置。
---TextView(FIXED)---
element6
element7
...(scrolling)
我考虑过这个问题,但找不到一个好的编程解决方案,但我意识到我可以通过一些作弊来做到这一点。
RecyclerView
将像我提到的 场景 一样工作。但是当 TextView
开始从顶部离开屏幕时,一个克隆 TextView
将会出现并被带到 RecyclerView
的前面,所以即使我的真实 TextView
从屏幕上消失了屏幕上,克隆 TextView
将保留其位置。
然而,这个解决方案并没有让我满意。我也没有尝试我的想法,不知道它是否会完全奏效。我为此搜索了一个很好的解决方案,但找不到任何密切相关的问题。
我想知道是否有任何方法可以在不使用新视图等的情况下实现此行为
您是否研究过像 this 这样的 Sticky List Header 库?我敢打赌,如果你深入研究他们的源代码,你会找到一些很好的灵感。
假设我有一个 ImageView
和一个 TextView
。这两个视图是我RecyclerView
的前两个元素。 RecyclerView
的其他元素属于同一类型。
ImageView(element 0 of RecyclerView)
TextView(element 1 of RecyclerView)
element2
element3
...
所以,通常在这种场景中,如果您向下滚动,ImageView
和 TextView
将向上移动并在我继续滚动时从视线中消失。我想要的是,ImageView
通过离开屏幕消失,但 TextView
留在屏幕顶部,即使我进一步滚动,RecyclerView
的其他元素将上升,TextView
将停留在屏幕顶部的固定位置。
---TextView(FIXED)---
element6
element7
...(scrolling)
我考虑过这个问题,但找不到一个好的编程解决方案,但我意识到我可以通过一些作弊来做到这一点。
RecyclerView
将像我提到的 场景 一样工作。但是当 TextView
开始从顶部离开屏幕时,一个克隆 TextView
将会出现并被带到 RecyclerView
的前面,所以即使我的真实 TextView
从屏幕上消失了屏幕上,克隆 TextView
将保留其位置。
然而,这个解决方案并没有让我满意。我也没有尝试我的想法,不知道它是否会完全奏效。我为此搜索了一个很好的解决方案,但找不到任何密切相关的问题。
我想知道是否有任何方法可以在不使用新视图等的情况下实现此行为
您是否研究过像 this 这样的 Sticky List Header 库?我敢打赌,如果你深入研究他们的源代码,你会找到一些很好的灵感。