【问题标题】:Equivalent of onAttachedToWindow()/onDetachedFromWindow() for a ViewHolder in RecyclerView等效于 RecyclerView 中 ViewHolder 的 onAttachedToWindow()/onDetachedFromWindow()
【发布时间】:2016-11-19 18:38:49
【问题描述】:

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

【问题讨论】:

标签: android android-recyclerview android-viewholder


【解决方案1】:

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

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)
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-30
    • 2018-11-05
    • 1970-01-01
    相关资源
    最近更新 更多