Android 8.0下异常Only fullscreen opaque activities can request orientation

Android 8.0下异常Only fullscreen opaque activities can request orientation

问题:

Caused by: java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation
at android.app.Activity.onCreate(Activity.java:1038)
at android.support.v4.app.SupportActivity.onCreate(SupportActivity.java:66)
at android.support.v4.app.FragmentActivity.onCreate(FragmentActivity.java:321)
at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:84)
at com.fsh.lfmf.base.MyBaseActivity.onCreate(MyBaseActivity.java:24)
at com.fsh.lfmf.activity.RegisterActivity.onCreate(RegisterActivity.java:102)
at android.app.Activity.performCreate(Activity.java:7183)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1220)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2910)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3032)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6944)

原因:

在Android8.0环境下,如果一个Activity在Manifest中设置了方向(横,竖屏),即android:screenOrientation=”landscape”/”portrait”,并且指定的android:theme中使用的style带有透明属性

 <style name="Fit8Theme" parent="MyStartTheme">
        <item name="android:windowIsTranslucent">true</item>
    </style>

解决方法:

方法一:Activity设置android:windowIsTranslucent=false,然后设置指定屏幕方向;
方法二:Activity设置android:windowIsTranslucent=true,然后设置android:screenOrientation=”behind”,这样就可以保持屏幕方向统一了。

发布了22 篇原创文章 · 获赞 31 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_36158551/article/details/82528630