我如何知道使用 RecyclerView 的 DrawerLayout 何时完全填充?

How do I know when a DrawerLayout using a RecyclerView is fully populated?

我正在制作 Material 设计 Navigation Drawer that gets it's content from a RecyclerView. Following the Material Design guidelines, I'm marking the selected item with special highlighting and to make sure the drawer get's the correct item highlighted I set the highlighting in my activity's onResume() 方法。

我的问题是这只是有时有效。通常当我启动该应用程序时它可以正常工作,但如果我通过从 Android 最近的应用程序列表中将其滑出并再次启动它来终止该应用程序,它就无法工作。

在这种情况下,在任何内容添加到我的 RecyclerView 之前调用 onResume(),所以我无法突出显示任何内容。

我如何知道我的 RecyclerView 何时已完全初始化?或者,除了我可以使用的 onResume() 之外,还有其他方法可以在抽屉和 RecyclerView 保证准备就绪时调用吗?

通常,在初始化 AdapterViewRecyclerView 时,您希望适配器拉取项目的配置,而不是试图找出推送配置的时间。不仅这避免了时间问题,但无论如何您通常都需要该代码来处理诸如物品回收之类的事情。

RecyclerViewListView's "choice mode" 的某些等价物的情况下,让 RecyclerView.ViewHolder 在获取模型数据以填充物品。然后,ViewHolder 可以做任何它需要做的事情来反映那个状态:​​更新 CompoundButton,调用 setActivated(),等等

This sample app demonstrates this in the context of a classic checklist structure implemented using RecyclerView, and this sample app 使用激活状态而不是 CheckBox 小部件进行演示。