Android 开发者朋友们,
我正在开发 Jetpack Compose Native 应用程序,最近当我旋转设备时该应用程序停止旋转。自动旋转已开启。我尝试了两个模拟器 Pixel 9 和 8 以及一个带有 SDK 30 的物理设备。不知道发生了什么,因为我无法跟踪与设备旋转相关的任何更改。
这是我的清单:
<application
android:name=".app.android.App"
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:enableOnBackInvokedCallback="true"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme"
tools:targetApi="35">
<activity
android:name=".app.host.MainActivity"
android:exported="true"
android:theme="@style/Theme"
android:windowSoftInputMode="adjustNothing"> <!--adjustNothing is used to deal with imePadding-->
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
主题:
<style name="Theme" parent="Theme.Material3.DayNight">
<item name="android:windowIsTranslucent">true</item>
</style>
我有“自定义启动画面,这就是我设置“windowIsTranslucent”的原因。
此外,我使用 GoogleMap SDK,但在任何屏幕上都没有发生旋转。
注意- 我的目的不是强制纵向,而且自动旋转也适用于整个设备。
基本上问题是
android:windowIsTranslicent
。更多信息请参见:android:@Theme.Translucent 将方向锁定为纵向?
要解决此问题,请将
android:screenOrientation="sensor"
添加到活动中(撰写应用程序中只有一个)或找到另一种方法来创建自定义启动屏幕。