Изменение ориентации экрана Android для всех видов деятельности - PullRequest
27 голосов
/ 16 сентября 2011

Я хочу исправить ориентацию экрана на моем приложении для Android в портретном. С помощью Google я обнаружил, что это можно сделать, добавив следующий код в мой manifest.xml:

<activity android:name=".LauncherActivity"
  android:configChanges="keyboardHidden|orientation" 
  android:screenOrientation="portrait">
</activity>

Это достаточно хорошо, но проблема в следующем: у меня сейчас около 15 занятий, и это число будет расти. Есть ли способ применить ориентацию ко всем видам деятельности одновременно?

Я пытался использовать стили следующим образом:

theme.xml

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
  <style name="Custom" parent="android:Theme">
    <item name="android:screenOrientation">portrait</item>
    <item name="android:windowBackground">@drawable/launcher</item>
    <item name="android:configChanges">keyboardHidden|orientation</item>
  </style>
</resources>

Manifest.xml

<application ... 
android:debuggable="true"
  android:theme="@style/Custom"
>
//...
</application>

или

<activity
... 
  android:theme="@style/Custom"
>
//...
</activity>

Оба примера применяются windowBackground успешно, но screenOrientation не работает. Есть идеи?

Ответы [ 2 ]

21 голосов
/ 26 января 2012

Ни за что.Мне нужно повторить

<activity android:name=".LauncherActivity"
  android:configChanges="keyboardHidden|orientation" 
  android:screenOrientation="portrait">
</activity>

в каждом теге <activity> в манифесте.

15 голосов
/ 16 сентября 2011

Вы можете создать класс, который расширяет Activity:

public class PortraitActivity extends Activity
{
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    }
}

И я думаю, что если ваша деятельность расширится PortraitActivity вместо Activity, это подойдет.

РЕДАКТИРОВАТЬ: SCREEN_ORIENTATION_PORTRAIT или SCREEN_ORIENTATION_LANDSCAPE

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...