Как отключить ландшафтный режим для некоторых видов в моем приложении для Android?
android
android-manifest
android-orientation
lostInTransit
источник
источник
Ответы:
Добавьте
android:screenOrientation="portrait"
к активности в AndroidManifest.xml. Например:РЕДАКТИРОВАТЬ: Поскольку это стало очень популярным ответом, я чувствую себя очень виноватым, так как принуждение к портрету редко является правильным решением проблем, к которым он часто применяется.
Основные предостережения с вынужденным портретом:
retainInstance
фрагменты.Таким образом, большинство приложений должны просто позволить датчикам телефона, программному обеспечению и физической конфигурации принимать собственное решение о том, как пользователь хочет взаимодействовать с вашим приложением. Однако о некоторых случаях вы можете подумать, если вас не устраивает поведение
sensor
ориентации по умолчанию в вашем случае использования:nosensor
для ориентации. Это заставляет пейзаж на большинстве планшетов и портрет на большинстве телефонов, но я все равно не рекомендовал бы это для большинства «обычных» приложений (некоторые пользователи просто любят набирать текстовую клавиатуру на своих телефонах, а многие пользователи планшетов читают в портретном режиме - и вы должны позволить им).sensorPortrait
может быть лучше, чемportrait
для Android 2.3+; это позволяет перевернуть портрет, что довольно часто встречается при использовании планшета.источник
Я не знал о
AndroidManifest.xml
переключении файлов, пока не прочитал этот пост, поэтому в своих приложениях я использовал это вместо:источник
Добавьте это
android:screenOrientation="portrait"
в свой файл манифеста, где вы объявите свою деятельность следующим образомЕсли вы хотите использовать Java-код, попробуйте
прежде чем вызывать
setContentView
метод для вашей деятельности вonCreate()
.Надеюсь, что это поможет и легко понятно для всех ...
источник
Многие ответы здесь предлагают использовать
"portrait"
в вашем файле AndroidManifest.xml. Это может показаться хорошим решением, но, как отмечено в документации, вы выделяете устройства, которые могут иметь только ландшафт. Вы также заставляете определенные устройства (которые лучше всего работают в ландшафте) переходить в портрет, не получая правильной ориентации.Мое предложение использовать
"nosensor"
вместо. Это позволит устройству использовать предпочтительную ориентацию по умолчанию, не будет блокировать любые покупки / загрузки в Google Play и гарантирует, что датчик не испортит вашу (NDK, в моем случае) игру.источник
Если вы хотите пользовательские настройки,
тогда я бы порекомендовал
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
Вы можете изменить настройки из меню настроек.
Я требую этого, потому что мои таймеры должны соответствовать тому, что на экране, и вращение экрана разрушит текущую активность.
источник
Просто добавьте лайк в своем манифесте
источник
Вы можете сделать это для всего приложения без необходимости расширять общий базовый класс.
Сначала нужно убедиться, что вы включили подкласс Application в свой проект. В его onCreate (), вызываемом при первом запуске приложения, вы регистрируете объект ActivityLifecycleCallbacks (уровень API 14+) для получения уведомлений о событиях жизненного цикла активности.
Это дает вам возможность выполнять свой собственный код всякий раз, когда какая-либо активность в вашем приложении запускается (или останавливается, или возобновляется, или как угодно). В этот момент вы можете вызвать setRequestedOrientation () для вновь созданного действия.
И не забудьте добавить app: name = ". MyApp" в ваш файл манифеста.
источник
Используйте это в onCreate () действия
источник
Вы должны изменить
android:screenOrientation="sensorPortrait"
в AndroidManifest.xmlисточник
Просто добавьте этот атрибут в тег активности.
источник
Если вы не хотите проходить через сложность добавления ориентации в каждой записи манифеста действия, создайте класс BaseActivity (наследует «Activity» или «AppCompatActivity»), который будет наследоваться каждым действием вашего приложения вместо «Activity» 'или' AppCompatActivity 'и просто добавьте следующий фрагмент кода в BaseActivity:
источник
Добавьте
android:screenOrientation="portrait"
к активности вы хотите отключить ландшафтный режим.источник
Если вы хотите отключить
Landscape mode for your android app
(или одно действие) все, что вам нужно сделать, это добавить,android:screenOrientation="portrait"
на тег активности вAndroidManifest.xml
файле.Подобно:
Другой способ, программный подход.
Если вы хотите сделать это программно, т.е. используя код Java. Вы можете сделать это, добавив приведенный ниже код в класс Java для действия, которое вы не хотите отображать в ландшафтном режиме.
Я надеюсь, что это поможет вам. Для более подробной информации вы можете посетить здесь, введите ссылку здесь
источник
android:screenOrientation="nosensor">
Как изменить ориентацию в некоторых видах
Вместо того, чтобы блокировать ориентацию всей деятельности, вы можете использовать этот класс для динамической блокировки ориентации с любого вашего взгляда прагматично: -
Сделайте ваш взгляд Пейзаж
Сделай свой взгляд Портрет
Разблокировать ориентацию
Ориентация Util Class
источник
использование
источник
Вы должны установить ориентацию каждого вида деятельности.
источник
добавить класс внутри метода oncreate ()
источник
Если вы используете Xamarin C #, некоторые из этих решений не будут работать. Вот решение, которое я нашел для работы.
Над классом работает хорошо, аналогично другим решениям, также не применимы глобально и должны быть помещены в каждый заголовок деятельности.
источник
Вы можете заставить свою конкретную деятельность всегда оставаться в портретном режиме, написав это в своем manifest.xml
Вы также можете заставить свою активность оставаться в режиме postrait, написав следующую строку в методе onCreate () вашей активности.
источник
источник
Добавить ниже похвалы на ваш проект,
затем вы используете класс манифеста, например, React_Native (папка вашего проекта) / android / app / src / main / AndroidManifest.xml
Благодарю вас!
источник
В
<apphome>/platform/android
созданный каталогAndroidManifest.xml
(копирование его из созданного). Затем добавьтеandroid:screenOrientation=
"portrait
" ко ВСЕМ элементам деятельности.источник
мы можем ограничить активность в портретном или ландшафтном режиме, используя атрибут android: screenOrientation.
если в моей программе более одного вида деятельности, тогда у вас есть свобода ограничить любое действие в любом режиме, и это никогда не повлияет на другие, которые вам не нужны.
источник
Либо в явном классе.
или программно
Примечание: вы должны вызывать это перед
setContentView
методом для вашей активности вonCreate()
.источник
Добавьте
android:screenOrientation="portrait"
в файл AndroidManifest.xml .Например :
источник
В надежде помочь кому-то еще, вам нужен следующий атрибут ACTIVITY в AndroidManifest.xml:
Android: configChanges = "ориентация"
Итак, узел полной активности:
источник
В котлине же это может быть программно достигнуто с помощью ниже
источник
У меня сработало, попробуйте добавить этот код в файл AndroidManifest
источник
Поместите это в свой манифест.
Ориентация будет портретной, но если телефон пользователя перевернут, он также показывает правильный путь. (Таким образом, ваш экран будет вращаться на 180 градусов).
Система игнорирует этот атрибут, если действие выполняется в многооконном режиме .
источник
если ваша деятельность связана с первым состоянием ориентации устройства, получите текущую ориентацию устройства в
onCreate
методе, а затем исправьте ее навсегда:источник