2015-11-23 2 views
-4

Мое приложение, имеющее пейзаж и портретный режим. поэтому я разработал два макета для каждого режима. В файле манифеста я устанавливаю код ниже.android OS не принимает дизайн ландшафтного режима при изменениях orintation

android:configChanges="orientation" 

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

android:configChanges="keyboardHidden|orientation|screenSize" 

Теперь деятельность не воссоздается, но также не принимает дизайн ландшафтного режима.

пожалуйста, помогите мне решить эту проблему друзей

+0

Занятие для активного отдыха предназначено для перерисовки с правильной компоновкой, если вы отключите его, теперь он будет рисовать ваш ландшафт. – Nanoc

+0

Вы должны проверить это: http://stackoverflow.com/a/8093902/3743245 старше, чем Иисус –

+0

Вот как работает ориентация: путем воссоздания Деятельности. Если вы отключите его, вы потеряете его. Это кажется совершенно очевидным. Или не так ли? –

ответ

2

Я рекомендовал бы позволить применение воссоздать себя на изменение ориентации.

Если вам нужно сохранить состояние, тогда храните информацию при вызове onSaveInstanceState.

/** 
* On min or rotate save state info. 
* 
* @param bundle saved values 
*/ 
public void onSaveInstanceState(Bundle bundle) { 

    bundle.putBoolean("SomeKey", someKeyValue); 
    super.onSaveInstanceState(bundle); 
} 

, а затем восстановить значения в OnCreate

if (savedInstanceState != null) { 

     if (savedInstanceState.containsKey("SomeKey")) { 
      someKeyValue= 
       savedInstanceState.getBoolean("SomeKey"); 
     } 

    } 

Использование onConfigChanges: скользкий склон, который хорошо работает до тех пор, пока не делает. Поведение меняется и усложняется с каждой версией ОС.

0

В моем случае мое приложение отлично работает как в ориентации здесь является то, что я делаю, может это помочь вам,

использовать тот же код в общественной ничтожной OnCreate (Bundle savedInstanceState) {// ваш код} и общественного недействительными onConfigurationChanged (Конфигурация newConfig) {// код}

и AndroidManifest файл

нас e like

<activity 
     android:name="YourActivity" 
     android:configChanges="orientation|screenSize" 
     android:windowSoftInputMode="stateHidden" /> 

все. если какой-либо вопрос выслать свой комментарий

Смежные вопросы