Only fullscreen opaque activities can request orientation の対処方法

targetSdkVersion27に上げた途端にクラッシュしました。
公式でこういう仕様になりましたよとかなかったような気がするのですが、見落としていたのでしょうか。

原因

クラッシュする直接の原因は下記のActivity#onCreate内にある部分です。

targetSdkVersion以上 かつ isFixedOrientation(Activityの回転が固定されているかどうか)で、
さらに、isTranslucentOrFloating(StyleでwindowIsTranslucent=true)にしているとIllegalStateExceptionを投げるという仕様のようです。
つまりTranslucentやFloating(初めて見た)の状態のときは、画面を固定してはイケナイよ、ということのようです。

解決方法

StackOverFlowなどを見ると、ManifestからscreenOrientationを消せ、と書いてあるんだけど、それじゃ回転してしまうじゃないかということで、
Styleから<item name="android:windowIsTranslucent">true</item>を使わない方法で行くしか無いのかなと。

StackOverFlowにもありますが、上記のやり方である程度は補えるかなと思います。
ただ、僕の場合<item name="android:windowIsTranslucent">true</item>を消すだけで問題なさそうだったので、
上記のやり方は簡単に試したのみでじっくり見てません。あしからず。参考になれば嬉しいです。

参考

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

スポンサーリンク
レクタングル(大)

シェアする

フォローする

fbcomments

Comments

comments

スポンサーリンク
レクタングル(大)