检测recyclerview是否更新

Aye*_*mza 2 java android android-recyclerview firebase-realtime-database

我有一个RecyclerView包含消息列表的。我想在用户每次收到消息时发出通知。因为更新RecyclerView意味着有一条新消息。我试图在收听 Firebase 数据库消息节点时发出通知,但它给了我很多通知并使应用程序看起来很混乱。有什么建议吗?

Ate*_*res 7

您可以使用RecyclerView.AdapterDataObserver来观察适配器的数据。

它为您提供了许多观察适配器数据的选项

  • 无效 onChanged()
  • onItemRangeChanged(int positionStart, int itemCount, Object payload)
  • onItemRangeChanged(int positionStart,int itemCount)
  • onItemRangeInserted(int positionStart, int itemCount)
  • onItemRangeMoved(int fromPosition, int toPosition,int itemCount)
  • onItemRangeRemoved(int positionStart, int itemCount)

科特林示例:

mAdapter.registerAdapterDataObserver(object : RecyclerView.AdapterDataObserver(){

 override fun onChanged() {
   // do work here
    super.onChanged()
 }

})
Run Code Online (Sandbox Code Playgroud)