【发布时间】:2017-10-27 17:41:16
【问题描述】:
我有一个将android:windowIsTranslucent 设置为true 和android:windowBackground 设置为半透明背景的活动。我刚刚更改了我的目标并将 sdk 版本编译为 27,现在启动此活动时出现异常:
java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation
由于这是一个新的sdk,网上还没有任何关于它的信息(而且似乎是由这行代码产生的:https://android.googlesource.com/platform/frameworks/base.git/+/master/core/java/android/app/Activity.java#987)
有没有办法解决这个问题?如果我为此活动从清单中取出 android:screenOrientation="portrait",应用程序不会崩溃,但我希望能够保持这种状态。
【问题讨论】:
-
能够选择具有半透明活动的方向是没有意义的。如果您下面的 Activity 不支持该 Activity 或自己锁定它怎么办?那将如何运作?如果它被允许,它就会出现漏洞。
-
所以我的用例是这个半透明的活动只显示在我自己的应用程序中(而不是作为另一个应用程序的覆盖)。这是一个覆盖我的主要活动的搜索活动,主要活动也不旋转
-
经过一番实验,我发现在类似的半透明activity中去掉screenOrientation属性后,我的activity还是不会旋转,和后面的一样 b> 还有带有 portrait 值的 screenOrientation 属性。
标签: java android android-activity