Планшет Android Ориентация при запуске Activity

У меня странная проблема с обработкой ориентации на планшетах Samsung. В основном, у меня есть это приложение, которое должно работать только в альбомной ориентации, если оно работает на планшете, и в портретном режиме, если я нахожусь на телефоне. Для этого я проверяю, на каком устройстве я работаю, а затем использую onConfigurationChanged обратный вызов, чтобы установить правильный макет. Он отлично работает на телефоне. Но на планшете, если я держу его в портретном положении, при запуске другого действия в том же приложении я вижу вспышку на домашнем экране (это не круто), поэтому ориентация (а также панель Android) переходит в портретное положение второе действие загружается в портретной (это неправильно), и через некоторое время второе действие меняет ориентацию на правильную альбомную позицию. Есть ли способ просто загрузить второе действие прямо в альбомной ориентации? Спасибо

Francesco

2 ответа

Решение

Если вы хотите загрузить какое-либо действие непосредственно в альбомной ориентации, то упомяните screenOrientation непосредственно в конкретном действии в файле AndroidManifest.xml:

android:screenOrientation="landscape"

это загрузит вашу деятельность непосредственно в альбомной ориентации.

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

  if(Build.VERSION.SDK_INT >= 11){
           //If build is tablet honeycomb or greater sdk such as 12, or 13
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);


    }
    else{
        //If device SDK is lower than 11 the view is set to PORTRAIT
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    }

Вы могли бы также сделать

Build.VERSION_CODES.HONEYCOMB

Для тестирования на планшете. Это было бы более конкретно для сот. Вы также делаете HONEYCOMB_MR1 & MR2.

Другие вопросы по тегам