Android: Ландшафтный режим во всем приложении

Как я могу установить ландшафтный режим во всем приложении? Я могу добавить android:screenOrientation="landscape"

во всех моих действиях. Но тогда это очень избыточный код, и он может быть подвержен ошибкам по мере развития приложения. Могу ли я установить ландшафтный режим для всего приложения только в одном месте?


person LearningBasics    schedule 21.08.2014    source источник
comment
Как эта одна строка кода подвержена ошибкам? Просто любопытно узнать.   -  person Aniruddha    schedule 21.08.2014
comment
Я могу пропустить какое-то действие, в котором это может быть не установлено !! Вы должны быть очень осторожны, чтобы каждый раз, когда вы пишете действие, этот атрибут ориентации должен быть установлен   -  person LearningBasics    schedule 21.08.2014
comment
проверьте этот пост: stackoverflow.com/a/9784269/1891118   -  person Oleksii K.    schedule 21.08.2014
comment
@shomeser Я думаю, ты не правильно прочитал вопрос   -  person LearningBasics    schedule 21.08.2014


Ответы (4)


Да, вы можете сделать это как программно, так и для всех своих действий, создав AbstractActivity, который расширяет все ваши действия.

public abstract class AbstractActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    }
}

Это абстрактное действие также можно использовать для глобального меню.

person user3726986    schedule 21.08.2014
comment
Отредактировал мой ответ!! Хотя мой ответ почти совпадает с вашим - person user3726986; 21.08.2014
comment
Когда вы копируете ответ, пожалуйста, укажите источник, откуда вы скопировали. Скопировано из stackoverflow.com/questions/6745797/ - person Aniruddha; 22.08.2014

Создайте AbstractActivity, который расширяет все ваши действия. Это установит ориентацию программно для всех из них.

public abstract class LandscapeActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    }
}
person stevyhacker    schedule 21.08.2014

Короче говоря, вы не можете. Добавление его к элементу application ничего не дает. У вас нет альтернативы добавлению его в каждое действие.

person scottt    schedule 21.08.2014
comment
Уверены ли вы ? Хотя я и не смог найти что-то, что можно было бы задать один раз. - person LearningBasics; 21.08.2014
comment
Ха! В разработке для Android нет ничего определенного. Но да, я уверен. Нет известного способа выполнить полную настройку ориентации приложения через манифест. По крайней мере, не на момент написания этого и до версии 19. Существуют есть способы сделать это путем расширения пользовательского абстрактного базового класса Activity или путем создания подкласса класса Application, но они не кажутся стоящими. усилие, если они вам не нужны по другой причине. - person scottt; 21.08.2014

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

также см. Android, только альбомная ориентация?

person robotik    schedule 21.08.2014