我查阅了RecyclerView.Adapter
的文档,以了解notify...
方法的工作方式。它表示在ViewPager中发生这些更改时,通知RecylerView关于数据集更改的最佳方式是什么?
如果您正在编写适配器,如果可以的话,使用更具体的更改事件将始终更高效。作为最后的手段依赖notifyDataSetChanged()。
点击的项目我RecyclerView
开始包含ViewPager
的活动。 ViewPager
使用FragmentStatePagerAdapter
。因此,如果我愿意的话,我可以轻扫一下视图并对其进行更改。当我的寻呼机托管活动结束后,我必须通知RecyclerView
的适配器有关更改。我只能看到2点可能的方式来进行:
- 我可以建立这样的通信通道:寻呼机的片段通知主办的活动,如果他们编辑 - >主办活动发送的所有更改的列表在父活动完成时向父活动发送 - >父活动在
RecylerView.Adapter
上调用notifyItemChanged()
进行所有更改。我想不出一种不难看的方式。 - 我说这是最后一招,直接调用'notifyDataSetChanged()`,问题没有了,但没有证据证明它不会减慢应用程序的速度。
我对此很新,所以也许我错过了一个明显的解决方案。
感谢您的回答。对于通信信道的一部分,'startActivityForResult()似乎是合乎逻辑的。第二部分你会用什么?片段页面需要将数据发送到其托管活动的方式。 –
@LimboExile这里是如何将数据从片段传递到活动 https://developer.android.com/training/basics/fragments/communicating.html –
明白了。我现在对片段现在知道它的一种活动方法感到困扰,但是由于官方网站也建议这样做,那么它应该是一条路。 –