RecyclerView中ViewHolder的onAttachedToWindow()/ onDetachedFromWindow()的等价物

时间:2016-07-16 19:45:52

标签: android android-recyclerview android-viewholder

我正在转换一堆视图来代替使用RecyclerView中的ViewHolder模式。我有需要在onAttachedToWindow()和onDetachedFromWindow()中运行的代码,或者在View生命周期方面最接近它的代码。我能做些什么来复制它?

1 个答案:

答案 0 :(得分:0)

我们可以在View.OnAttachStateChangeListener中实现ViewHolder

class SomeViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView),
View.OnAttachStateChangeListener {

    ...

    init {
         itemView.addOnAttachStateChangeListener(this)
    }

    override fun onViewDetachedFromWindow(v: View?) {
        // Do what you need
    }

    override fun onViewAttachedToWindow(v: View?) {
        // Do what you need
    }
}

Adapter中,我们在onCreateViewHolder(...)中设置了视图:

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): SomeViewHolder {
    val view = LayoutInflater.from(parent.context).inflate(R.layout.some_item, parent, false)
    return SomeViewHolder(view)
}