Recycler Adapter 中的 BindView 和 UnbindVIew

use*_*981 5 android rx-java android-recyclerview

有什么方法可以找出视图何时用于适配器中的其他位置。例如有 10 个位置。并且已为其中的前 4 个创建了视图。当我们向上滚动时,第一个视图现在将被第 5 项重用。我需要知道该特定视图何时未用于第 1 项。用例是,我在视图持有者内部使用可观察对象,需要取消订阅在正确的时间。

R. *_*ski 3

在这种情况下,有两种方法RecyclerView.Adapter很方便:

当该行不可见但由于滚动而即将可见时,将调用第一个方法。

当该行可见并且完全滚动出屏幕时,将调用第二个方法。

两种方法都有RecyclerView.ViewHolder作为参数。如果这还不够,您可以通过调用以下命令来获取它的位置:

holder.getAdapterPosition()
Run Code Online (Sandbox Code Playgroud)