美文网首页
当targetSdk升级到29之后,设置了透明主题的Activi

当targetSdk升级到29之后,设置了透明主题的Activi

作者: LYX_8716 | 来源:发表于2022-03-09 14:17 被阅读0次

    升级sdk是发现,当sdk升级到29时,设置了透明主题的Activity会崩溃的问题,经查正发现是在sdk大于等于27之后,透明主题的Activity如果设置了强制横竖屏就会崩溃,网上搜索发现,透明的Activity的方向会默认继承其上一层页面的方向。

    现已查明,此为Android 8.0.0和Android 8.1.0的bug(Android 9以上版本已修改)。

    如何产生此bug ?举例如下:

    比如对Activity设置了主题:android:theme="@android:style/Theme.Translucent.NoTitleBar"

    又设置了固定方向:android:screenOrientation="portrait"

    或者在代码中设置的固定方向:setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

    此时,就会报crash :

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

    解决方案:

    第一种:让主题透明Translucent和Activity固定方向不要同时存在。

    第二种:设置targetSdk <27

    相关文章

      网友评论

          本文标题:当targetSdk升级到29之后,设置了透明主题的Activi

          本文链接:https://www.haomeiwen.com/subject/wbvfdrtx.html