Использование syncState() в ActionBarDrawerToggle

Я использую класс ActionBarDrawerToggle чтобы связать воедино функциональность DrawerLayout и среду ActionBar для реализации рекомендованного дизайна для ящиков навигации.

Сайт разработчиков Android говорит:

Вызовите syncState() из вашего Activity onPostCreate, чтобы синхронизировать индикатор с состоянием связанного DrawerLayout после того, как произошло onRestoreInstanceState.

Но я не понимаю, что на самом деле делает метод syncState()?

Пожалуйста, объясните это как можно проще.

Ответ 1

Индикатор DrawerLayout - это маленький значок слева от значка ActionBar home (см. рисунок)

ActionBarDrawerToggle.syncState называется правильным смещением этого индикатора на основе того, открыт или закрыт DrawerLayout после восстановления состояния экземпляра DrawerLayout.

DrawerLayout indicator

Ответ 2

Вызовите syncState() из вашей активности onPostCreate чтобы установить состояние индикатора на основе того, находится ли выдвижение ящика в открытом или закрытом состоянии после восстановления действия с помощью onRestoreInstanceState.

protected void onPostCreate(Bundle savedInstanceState) {
    // TODO Display the navigation drawer icon on action bar when there state has changed 
    super.onPostCreate(savedInstanceState);
    drawerListener.syncState();
}

Ответ 3

Он вызывается из вашего Activity onPostCreate для синхронизации значка индикатора с состоянием связанного DrawerLayout после onRestoreInstanceState как произошло onRestoreInstanceState.

например

protected void onPostCreate(Bundle savedInstanceState)
{
    super.onPostCreate(savedInstanceState);
    this.navDrawerToggle.syncState();
}