Navigation Drawer - syncState() 是做什么的,为什么应该在 onPostCreate() 内部调用它?
我正在学习在Android中创建导航抽屉。在阅读本文时,我无法理解以下代码:
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
// Sync the toggle state after onRestoreInstanceState has occurred.
mDrawerToggle.syncState();
}
文档说:
将抽屉指示器/提示的状态与链接的抽屉布局同步。
这应该从 Activity 的 onPostCreate 方法中调用,以便在 DrawerLayout 的实例状态恢复后进行同步,以及状态可能以未通知 ActionBarDrawerToggle 的方式发散的任何其他时间。(例如,如果您在一段时间内停止转发相应的抽屉事件。
此外,我从sstn的答案中读到这里:OnPostCreate in FragmentonPostCreate()
onPostCreate() 主要用于框架使用(尽管您可以覆盖它)。文档说它是在onStart()和onRestoreInstanceState()之后调用的。
这可能会导致假设它可能在 onResume() 之前被调用,因此可能在消息循环调度事件(包括 AsyncTask 的 onPostExecute() 方法)之前被调用,这意味着您的 onPostExecute() 只会在 onPause() 之后触发。
由于onPostCreate()没有正确记录,也不是真正用于应用程序用途 - 我可能想说,依赖任何观察到的行为都不是一个好主意。
从这两个人中,我什么也听不懂。它到底做了什么,为什么它应该在里面?谁能更好地解释它?syncState()
onPostcreate()