如何知道何时在自定义 RecyclerView 中加载数据?

How to know when data is loaded inside custom RecyclerView?

我正在我的应用程序中创建和使用自定义 RecyclerView。在 class 字段中保存第一项宽度之前,我需要先调用 getChildAt(0).getWidth()。为此,我需要在适配器中加载数据时进行捕捉(否则 getChildAt(0) 将 returns null)。

如何在自定义 RecyclerView 中捕获数据加载事件?

RecyclerView 已经在调用 registerAdapterDataObserver 并且它在提供的适配器上取消注册对应项。

这个观察者有几个回调让 Recycler 知道何时添加、删除或更改数据。你应该利用这些。

此外,适配器更改数据的那一刻与视图 created/layout 出现在屏幕上的那一刻不同。当子级已在屏幕上布局时,您可能必须调用 getViewTreeObserver().addOnGlobalLayoutListener 才能收到回调。

希望对您有所帮助,编码愉快。