IllegalStateException:只有全屏不透明活动才能请求方向

时间:2018-02-14 12:19:40

标签: android android-manifest

我有一个从浏览器打开的活动 当设备处于横向状态时,让我低于错误

java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation

清单

<activity android:name=".Activity.MyActivity"
        android:configChanges="orientation"
        android:screenOrientation="portrait"
        android:theme="@style/AppTheme.Theme_Slide"
        >
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />

            <data
                android:host="xxx"
                android:scheme="xxx" />
            <data
                android:host="xxx"
                android:scheme="xxx" />
        </intent-filter>
    </activity>

style.xml

<style name="AppTheme.Theme_Slide" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowCloseOnTouchOutside">false</item>
</style>

1 个答案:

答案 0 :(得分:19)

更新 查找解决方案

在android Oreo中,您无法更改具有

的Activity的方向
 <item name="android:windowIsTranslucent">true</item>
样式中的

。您必须先从清单中删除以下行

android:screenOrientation="portrait"

第二,您必须将此行添加到Java文件

    //android O fix bug orientation
    if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    }