2

我希望所有活动都是纵向的。

所以我都试过了

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);

但如果我在onCreate(), onPause() or onResume()打开应用程序之前从一开始就以横向方式旋转设备,屏幕将翻转为横向并返回纵向。

但是,如果我删除setRequestedOrientation方法并仅添加它android:screenOrientation="portrait"AndroidManifest.xml那么它就可以工作(但让我们想象一下,如果我有 30 个活动,那么最好在 BaseActivity 中使用)

如何重现

  1. BaseActivity 有方法onCreate(), onResume(), onPause() setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

  2. 横向旋转设备。

  3. 打开应用,Activity A 正在从横向翻转到纵向。
  4. 从Activity A启动Activity B,Activity B从横向翻转到纵向。

注意 我已经检查了 Android 8.1 屏幕方向问题:翻转到横向纵向屏幕

活动在 android 8.1 中自行旋转并恢复正常

但它不起作用(只有在 AndroidManifest 中定义了方向时才起作用)

如果有人知道如何解决,请分享解决方案

太感谢了。

4

0 回答 0