Android Tabhost, переключение ориентации, перезагрузка медленная

1

У меня есть приложение, которое находится в портретном режиме, но некоторые экраны должны иметь ландшафтный режим для телефонов с физическими клавиатурами.

Я использую tabhost, и я заметил, что когда я разрешаю принудительное изменение ориентации, он перезагружает вкладку "КАЖДЫЙ" и немного медленный.

Есть ли способ разрешить принудительное изменение ориентации (например, только при выталкивании жесткой клавиатуры) И только перезагрузить это представление в ландшафтном режиме? Я хочу сделать это без задержки перезагрузки всех видов деятельности. В настоящее время мой табуст будет циклически перебирать каждое действие при изменении ориентации. Я знаю, что это имеет какое-то отношение к перерисовке "живых" действий при изменении ориентации, но tabhost просто увеличивает эту перерисовку.

Действия, требующие дополнительного ландшафтного режима, также должны выполняться внутри табуляции.

Проницательность оценена

Теги:
keyboard
tabview
android-tabhost
landscape

1 ответ

2
Лучший ответ

Вы предотвращаете уничтожение Activity, самостоятельно изменяя ориентацию.

Отредактируйте действия вашего манифеста:

<activity  android:name=".MyActivity" android:screenOrientation="portrait" android:configChanges="orientation|keyboardHidden" /> 

И затем переопределите в своих действиях:

       @Override 
       public void onConfigurationChanged(Configuration newConfig) { 
         //ignore orientation change 
         super.onConfigurationChanged(newConfig); 
       }

НО вы должны знать, что перезагрузка используется для загрузки специальных ресурсов для каждой ориентации, у вас может быть странный эффект, если вы действительно не справляетесь с этим изменением. Есть причины для перезагрузки.

  • 0
    Вы можете остановиться на этом? Почему у вас есть точка перед MyActivity, почему я хочу игнорировать изменение ориентации с помощью super.onConfigurationChanged(newConfig); ? Похоже, сейчас это не работает для меня. Я бы хотел, чтобы только отдельные действия в группе вкладок можно было перезагрузить без перезагрузки всей вкладки

Ещё вопросы

Сообщество Overcoder
Наверх
Меню