Android Studio 3.6.
Я хочу, чтобы мое приложение всегда было в portrait
режиме. Так по моему AndroidMainfest.xml
:
<activity
android:name=".activity.SplashActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Я запускаю приложение и SplashActivity
показывает в portrait
режиме. Ницца. Но редактор показывает следующую ошибку:
Expecting android:screenOrientation="unspecified"
Почему?
android
android-manifest
screen-orientation
a_subscriber
источник
источник
это влияет только на Android Studio 3.6+
В чем проблема здесь? Эта проблема возникает из-за того, что платформа Android хочет, чтобы пользователь сам управлял ориентацией приложения, поэтому не рекомендуется ограничивать ориентацию приложения, например, если пользователь хочет использовать приложение в горизонтальной ориентации, он просто переворачивает устройство, и датчики будут выполнять работу, но когда разработчик ограничивает ориентацию экрана, даже когда работает датчик вращения, приложение будет оставаться в заданном состоянии, что ограничивает возможности устройства пользователя.
Что делать сейчас? У вас есть два варианта. Во-первых, игнорировать ошибку, так как она не вызовет сбоя сборки, даже если я делаю то же самое, и генерация apk / aab выполняется как обычно. Другой вариант - предоставить альбомные макеты или обработать поворот, как в некоторых случаях. приложения, распознающие изменение ориентации, будут предлагать пользователю изменить ориентацию, поскольку приложение не поддерживается в такой ориентации.
Это может измениться в будущем => в настоящее время это не влияет на наш процесс сборки, но это может измениться в будущем
источник
В Android Studio 3.6.0, я думаю, они хотят, чтобы пользователь управлял ориентацией, и поощряли разработчиков использовать вещи ViewModel . Позвольте мне объяснить экранную ориентацию в деталях
android:screenOrientation="portrait"
даст вам ошибку, вы должны либо указать
android:screenOrientation="fullSensor" or android:screenOrientation="unspecified"
fullSensor Означает, что у вас включено «Отключить» или нет, это изменит ориентацию в зависимости от вашего перемещения телефона
не определено Означает, что если у вас ВКЛЮЧЕНО «Поворот», то он останется только в этой ориентации, а если нет, то изменит ориентацию в зависимости от вашего перемещения телефона.
источник
источник
Я использовал следующую процедуру. Это прекрасно работает для меня. В Android Studio 3.6.0 я думаю, что они хотят, чтобы пользователь справился с ориентацией, и побудили разработчика использовать материал ViewModel. Используйте следующую процедуру, чтобы игнорировать это.
Сначала добавьте:
в теге манифеста.
Во-вторых, Добавить
в теге приложения. Удачного кодирования.
источник
Я нашел 2 способа решения этой проблемы
Первый,
Во-вторых, `
источник
Добавить следующую строку после
android:screenOrientation="portrait"
Затем нажмите Alt+Enter
источник
Я сталкивался с этой проблемой. По моему требованию некоторые действия будут поддерживать обе ориентации, а останки будут оставаться в портретной ориентации. В этом случае я решил следующие шаги:
Случай 1: - Для блокировки ориентации
Шаг 1: Добавьте следующую строку тег приложения в AndroidManifest.xml
Шаг 2: Если вы хотите заблокировать ориентацию экрана в книжной или альбомной ориентации, добавьте следующую строку в тег активности
Случай 2: - Предположим, вы хотите разрешить ориентацию в конкретной деятельности и иметь конкретный дизайн для ландшафта
Шаг 1: Удалите значение Orientation в configchanges и удалите ориентацию экрана, если она существует из тега Activity, и мое личное предложение использовать (LifecycleObserver) в Activity, чтобы не потерять значения при изменении ориентации.
Это способ, которым я решаю эту проблему, надеюсь, это поможет, спасибо и счастливого кодирования.
источник
Попробуйте это решение:
Надеюсь это поможет!
источник
Вы можете использовать этот код:
источник
Попробуйте добавить следующее в тег активности
источник