Android Tabhost, переключение ориентации, перезагрузка медленная - PullRequest
1 голос
/ 02 июля 2011

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

Я использую tabhost и заметил, что, когда я разрешаю принудительное изменение ориентации, он перезагружает ВСЕ вкладки и работает довольно медленно.

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

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

Понимание ценится

1 Ответ

2 голосов
/ 02 июля 2011

Вы предотвращаете разрушение Действия, самостоятельно обрабатывая изменение ориентации.

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

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

А затем переопределите в своей деятельности:

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

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

...