更新到 4.2RC1 和透明活动不起作用?突然变黑
Updated to 4.2RC1 and transparent activities do not work ? Suddenly black
我有一个副菜单 activity,它显示在另一个 activity 之上。
<style name="Sidemenu" parent="Usual">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:backgroundDimEnabled">false</item>
<item name="android:colorBackgroundCacheHint">@null</item>
</style>
它一直运行良好。和往常一样,你可以看到下面的activity。
但是我只是将 Android Studio 更新为 4.2RC1 ..
现在..它不起作用!
下方区域为黑色。
完全是个谜。
有什么解决办法吗?
感谢这位了不起的老 post 几年前曾出现过类似的问题:https://whosebug.com/a/35915764/294884
4.2RC1 解决方法:
(1) 又是一个机器人 activity/theme bug
(2) 在清单中,您必须将主题设置为 Theme.AppCompat.Dialog
// side menu
<activity android:name=".. LeftMenu" android:theme="@style/Theme.AppCompat.Dialog" />
<!-- beware of insane droid transparent activity bug... -->
(3) 只有在代码中,才能设置主题为你的主题。 (在超级之前这样做)
protected void onCreate(Bundle savedInstanceState) {
setTheme(R.style.YourTransparentTheme);
super.onCreate(savedInstanceState);
setContentView(R.layout.aty_leftmenu);
}
(4) 您自己的样式主题将是:
<style name="YourTransparentTheme" parent="YourGeneralTheme">
<item name="android:windowBackground">@android:color/transparent</item>
.. and other colors etc you desire ..
</style>
为什么只需要 windowBackground 的详细信息: https://whosebug.com/a/67040753/294884
总而言之,该错误的解决方法是:
必须在清单中设置 Theme.AppCompat.Dialog。您只能在 onCreate 中设置自己的样式。
(旁白:请注意,如果您的大多数活动都有标题栏(因此基于Theme.AppCompat.Light),但您的透明activity没有标题栏(因此基于Theme.AppCompat.Light.NoActionBar)。这样你就可以拥有通常的东西,其中“左菜单”或类似的东西也覆盖了主应用程序的标题栏。)
我有一个副菜单 activity,它显示在另一个 activity 之上。
<style name="Sidemenu" parent="Usual">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:backgroundDimEnabled">false</item>
<item name="android:colorBackgroundCacheHint">@null</item>
</style>
它一直运行良好。和往常一样,你可以看到下面的activity。
但是我只是将 Android Studio 更新为 4.2RC1 ..
现在..它不起作用!
下方区域为黑色。
完全是个谜。
有什么解决办法吗?
感谢这位了不起的老 post 几年前曾出现过类似的问题:https://whosebug.com/a/35915764/294884
4.2RC1 解决方法:
(1) 又是一个机器人 activity/theme bug
(2) 在清单中,您必须将主题设置为 Theme.AppCompat.Dialog
// side menu
<activity android:name=".. LeftMenu" android:theme="@style/Theme.AppCompat.Dialog" />
<!-- beware of insane droid transparent activity bug... -->
(3) 只有在代码中,才能设置主题为你的主题。 (在超级之前这样做)
protected void onCreate(Bundle savedInstanceState) {
setTheme(R.style.YourTransparentTheme);
super.onCreate(savedInstanceState);
setContentView(R.layout.aty_leftmenu);
}
(4) 您自己的样式主题将是:
<style name="YourTransparentTheme" parent="YourGeneralTheme">
<item name="android:windowBackground">@android:color/transparent</item>
.. and other colors etc you desire ..
</style>
为什么只需要 windowBackground 的详细信息: https://whosebug.com/a/67040753/294884
总而言之,该错误的解决方法是:
必须在清单中设置 Theme.AppCompat.Dialog。您只能在 onCreate 中设置自己的样式。
(旁白:请注意,如果您的大多数活动都有标题栏(因此基于Theme.AppCompat.Light),但您的透明activity没有标题栏(因此基于Theme.AppCompat.Light.NoActionBar)。这样你就可以拥有通常的东西,其中“左菜单”或类似的东西也覆盖了主应用程序的标题栏。)