android: configchanges = "direction" - макет меняется с задержкой на ландшафт - PullRequest
0 голосов
/ 22 января 2020

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

public static void setOrientation(Context context, String orientation) {
    SharedPreferences settings = context.getSharedPreferences(SHARED_PREFS, Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = settings.edit();
    editor.putString(SHARED_PREFS_ORIENTATION, orientation);
    editor.apply();
}

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

String orientacion = AirviewAppHelper.getOrientation(this);
if (orientacion.equals( AirviewAppHelper.PORTRAIT)) {
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
} else if (orientacion.equals(AirviewAppHelper.LANDSCAPE)) {
    if (AirviewAppHelper.comprobar_orientacion(this) == 0) {
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE);
    } else {
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    }
} else {
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}

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

android:configChanges="orientation|screenSize|keyboardHidden"

Но поведение не изменилось. Заранее спасибо!

...