java - 更新到4.2RC1,透明 Activity 不行?突然变黑

标签 java android android-studio-4.2

我有一个侧菜单 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 ..
现在..它不起作用!
下面的区域是黑色的。
完全神秘。
周围有什么解决方案吗?

最佳答案

感谢这个惊人的旧帖子,几年前有类似的问题:https://stackoverflow.com/a/35915764/294884
4.2RC1 解决方法:
(1) 这是另一个机器人 Activity/主题错误
(2) 在 list 中,您必须将主题设置为 Theme.AppCompat.Dialog

    // side menu
    <activity android:name=".. LeftMenu" android:theme="@style/Theme.AppCompat.Dialog" />
    <!-- beware of insane droid transparent activity bug... -->
(3) 仅在代码 中,你可以将主题设置为你的主题。 (在 super 之前这样做)
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://stackoverflow.com/a/67040753/294884
总之,该错误的解决方法是:
必须在 list 中设置 Theme.AppCompat.Dialog。您只能在 onCreate 中设置自己的样式。
(旁白:请注意,如果您的大多数 Activity 都有标题栏(因此基于 Theme.AppCompat.Light),但您的透明 Activity 没有标题栏(因此基于 Theme.AppCompat.Light.NoActionBar),这没有问题。通过这种方式,您可以拥有通常的东西,其中“左侧菜单”或类似内容也覆盖了主应用程序的标题栏。)

关于java - 更新到4.2RC1,透明 Activity 不行?突然变黑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67041191/

相关文章:

java - 如何在使用 Selenium 驱动程序执行 Foreach 循环时对其进行控制?

java - 我只收到文本和图像 : Wordpress REST API app in Android studio

android-studio - 每当尝试建议方法和类时,Android Studio 就会卡住

android-studio - Gradle 任务未显示在 Android Studio 4.2 的 gradle 工具窗口中

java - @ManyToMany 和更新实体

java - YouTubePlayer.Provider 初始化方法引起的内存泄漏

java - 从 URL 读取 JSON 到 java 对象/存储在 mysql 数据库中时遇到问题

android - 只能在 facebook 请求前向 Bundle 添加一个参数

android - 使用 Cordova FileTransfer 将文件保存到公共(public)目录

flutter - 如何从功能更改 flutter 中的“升高的按钮”背景颜色?