Альбомный и портретный вид на планшете Android

#android

#Android

Вопрос:

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

 android:configChanges="keyboardHidden|orientation"
  

Ответ №1:

На самом деле,

           android:configChanges="orientation"
          android:screenOrientation="landscape"
  

атрибуты Activity объявления в манифесте не препятствуют воссозданию активности при изменении ориентации, это не позволяет платформе что-либо делать с ориентацией по умолчанию и сохраняет ее по умолчанию, например, альбомной.

Вы можете переопределить

 public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    setContentView(R.layout.newLayout);
}
  

чтобы принудительно восстановить действие.

Ответ №2:

Если у вас есть 2 макета (книжный и альбомный), и порядок на планшете кажется обратным, тогда переключитесь на использование getRotation вместо устаревшего getOrientation . Что-то вроде этого

 private void setLayout() {
    // Get display for detecting the phone orientation
    final Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
    if (display.getRotation() == Surface.ROTATION_0 || display.getRotation() == Surface.ROTATION_180) {
        setContentView(R.layout.home);
    } else {
        setContentView(R.layout.home_l);
    }
}