WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS 无效 AOSP 如何修改
时间: 2024-04-05 18:31:46 浏览: 184
要修改 AOSP 中的 `WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS` 失效问题,可以按照以下步骤进行:
1. 打开 `frameworks/base/core/res/res/values/styles.xml` 文件,找到 `Theme.Material.Light` 主题的定义,复制一份命名为 `Theme.Material.Light.NoTranslucent`。
2. 在新的主题中移除 `android:windowTranslucentStatus` 属性,保留其他属性。
3. 打开 `frameworks/base/core/res/res/values/themes.xml` 文件,找到 `Theme.Material.Light.DarkActionBar` 主题的定义,复制一份命名为 `Theme.Material.Light.DarkActionBar.NoTranslucent`。
4. 在新的主题中移除 `android:windowTranslucentStatus` 属性,保留其他属性。
5. 打开 `frameworks/base/core/java/android/view/WindowManagerGlobal.java` 文件,找到 `applyCompatConfiguration` 方法。
6. 在方法中找到 `params.flags |= WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;` 这行代码,将其修改为 `params.flags &= ~WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;`。
7. 重新编译 AOSP 并刷入设备即可。
注意:以上修改可能会影响到其他应用的行为,需谨慎操作。
阅读全文