Есть ли в Gluon API, чтобы наше приложение оставалось в портретном режиме, даже если пользователь поворачивает свое устройство в ландшафтном режиме?

После стилизации моего приложения в портретном режиме я обнаружил, что его макет неприемлем, если пользователь манипулирует своим телефоном, чтобы вызвать приложение в альбомном режиме. Я могу потратить время позже, чтобы переписать / повторно протестировать UX как для портретного, так и для ландшафтного режима, но в настоящее время есть способ, чтобы наше приложение все время удерживало портретный режим?

1 ответ

Для этого пока нет API или сервиса Attach. Однако вы можете изменить файл AndroidManifest.xml (Android) или файл Default-Info.plist (iOS), чтобы принудительно использовать одну ориентацию вместо существующих портретной и альбомной ориентации.

Android

См. Https://docs.gluonhq.com/#_android_2 для справки.

Файл AndroidManifest.xml создается для проекта с целью gluonfx:package и доступен по адресу target / gluonfx / aarch64-android / gensrc / android.

Скопируйте этот файл в src/android и внесите необходимые изменения:

  • Портрет
      <?xml version='1.0'?>
<manifest xmlns:android='http://schemas.android.com/apk/res/android' package='$your_package' android:versionCode='1' android:versionName='1.0'>
    <application android:label='$your_label' android:icon="@mipmap/ic_launcher">
        <activity android:name='com.gluonhq.helloandroid.MainActivity'
    android:configChanges="orientation|keyboardHidden" 
    android:screenOrientation="portrait">
             <intent-filter>
                <category android:name='android.intent.category.LAUNCHER'/>
                <action android:name='android.intent.action.MAIN'/>
             </intent-filter>
        </activity>
</manifest>
  • Пейзаж
      <?xml version='1.0'?>
<manifest xmlns:android='http://schemas.android.com/apk/res/android' package='$your_package' android:versionCode='1' android:versionName='1.0'>
    <application android:label='$your_label' android:icon="@mipmap/ic_launcher">
        <activity android:name='com.gluonhq.helloandroid.MainActivity' 
    android:configChanges="orientation|keyboardHidden" 
    android:screenOrientation="landscape">
             <intent-filter>
                <category android:name='android.intent.category.LAUNCHER'/>
                <action android:name='android.intent.action.MAIN'/>
             </intent-filter>
        </activity>
</manifest>

Затем снова беги gluonfx:package, окончательный манифест будет содержать изменения.

iOS

Для справки см. Https://docs.gluonhq.com/#_ios_2 .

Конфигурация определяется клавишами UISupportedInterfaceOrientations а также UISupportedInterfaceOrientations-ipad. По умолчанию со значениями:

              <key>UISupportedInterfaceOrientations</key>
        <array>
                <string>UIInterfaceOrientationPortrait</string>
                <string>UIInterfaceOrientationLandscapeLeft</string>
                <string>UIInterfaceOrientationLandscapeRight</string>
                <string>UIInterfaceOrientationPortraitUpsideDown</string>
        </array>
        <key>UISupportedInterfaceOrientations~ipad</key>
        <array>
                <string>UIInterfaceOrientationPortrait</string>
                <string>UIInterfaceOrientationLandscapeLeft</string>
                <string>UIInterfaceOrientationLandscapeRight</string>
                <string>UIInterfaceOrientationPortraitUpsideDown</string>
        </array>

Добавить файл src/main/resources/META-INF/substrate/ios/Partial-Info.plist и включите этот код:

  • Портрет
      <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>UISupportedInterfaceOrientations</key>
        <array>
                <string>UIInterfaceOrientationPortrait</string>
                <string>UIInterfaceOrientationPortraitUpsideDown</string>
        </array>
        <key>UISupportedInterfaceOrientations~ipad</key>
        <array>
                <string>UIInterfaceOrientationPortrait</string>
                <string>UIInterfaceOrientationPortraitUpsideDown</string>
        </array>
</dict>
</plist>
  • Пейзаж
      <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>UISupportedInterfaceOrientations</key>
        <array>
                <string>UIInterfaceOrientationLandscapeLeft</string>
                <string>UIInterfaceOrientationLandscapeRight</string>
        </array>
        <key>UISupportedInterfaceOrientations~ipad</key>
        <array>
                <string>UIInterfaceOrientationLandscapeLeft</string>
                <string>UIInterfaceOrientationLandscapeRight</string>
        </array>         
</dict>
</plist>

Тогда беги mvn gluonfx:link Опять же, окончательный список будет содержать эти изменения.

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