Как управлять дочерними действиями в Tab Acctivity при смене ориентации? - PullRequest
0 голосов
/ 14 декабря 2011

Я использую виджет вкладки.Когда моя дочерняя активность выполняется, и я меняю ориентацию, дочерняя активность уничтожается.

В качестве решения этой проблемы я добавил android:configChanges="orientation|keyboardHidden во все теги активности в моем файле manifest.xml.

Я обнаружил, что мое приложение не берет файл XML из папки layout_land.

Может кто-нибудь дать мне решение по этому запросу?

Заранее спасибо.

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

 @Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE){
        setContentView(R.layout.login_landscape);
    }
    else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
        setContentView(R.layout.login);         
    }
}

1 Ответ

0 голосов
/ 14 декабря 2011

Это происходит потому, что ваша активность не уничтожена, поскольку вы указали android:configChanges="orientation|keyboardHidden" в манифесте, поэтому setContentView не вызывается при изменении ориентации, и поэтому он не выбирает layout из layout_land

Обновление: И это не проблема с вашим Tab-Activity, попробуйте его в обычном режиме activity, он не выберет правильный layout или, вообще говоря, layout не выберет ваш portrait layout вращается только для отображения в landscape

...