У меня есть деятельность с DrawerLayout
и ActionBarDrawerToggle
для обработки бокового меню.Incoherent DrawerLayout поведение после вращения
Теперь мне понадобилась эта операция для вращения только на планшетах, но не на телефоне, поэтому я добавил android:configChanges="orientation|..."
в свой манифест для этой активности и переопределил onConfigurationChanged
. На телефонах ничего не сделано, а портрет вынужден, а на планшетах новая ориентация установлена на SCREEN_ORIENTATION_SENSOR
, чтобы позволить устройству решить и Я перезаряжаю макет с помощью setContentView()
.
Поскольку я сделал это, мое боковое меню не откроется после первого поворота. Я обнаружил, что onOptionsItemSelected
еще называют:
public boolean onOptionsItemSelected(MenuItem item)
{
if (item.getItemId() == android.R.id.home) {
if (mDrawerLayout.isDrawerVisible(GravityCompat.START)) {
mDrawerLayout.closeDrawer(GravityCompat.START);
}
else {
mDrawerLayout.openDrawer(GravityCompat.START);
}
}
return true;
}
но тест, который проверяет, если векселедатель видна всегда возвращает истину.
Любая идея о том, что может вызвать это? Я забыл заново создать или обновить что-то после вращения в onConfigurationChanged?
Примечание: Я также обнаружил, что если я не воссоздать макет (с setContentView()
) ящик работает отлично (но тогда я, очевидно, потерять расположение пейзаж и получить портрет макета как-то масштабируется)