等效于 RecyclerView 中 ViewHolder 的 onAttachedToWindow()/onDetachedFromWindow()
Posted
技术标签:
【中文标题】等效于 RecyclerView 中 ViewHolder 的 onAttachedToWindow()/onDetachedFromWindow()【英文标题】:Equivalent of onAttachedToWindow()/onDetachedFromWindow() for a ViewHolder in RecyclerView 【发布时间】:2016-11-19 18:38:49 【问题描述】:我正在转换一堆视图以在 RecyclerView 中使用 ViewHolder 模式。我有需要在 onAttachedToWindow() 和 onDetachedFromWindow() 中运行的代码,或者在视图生命周期方面最接近它的代码。我可以做些什么来复制它?
【问题讨论】:
你在找onViewAttachedToWindow(RecyclerView.ViewHolder holder)developer.android.com/reference/android/support/v17/leanback/… 【参考方案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)
【讨论】:
以上是关于等效于 RecyclerView 中 ViewHolder 的 onAttachedToWindow()/onDetachedFromWindow()的主要内容,如果未能解决你的问题,请参考以下文章
是否有与 RecyclerView 等效的 addHeaderView?