Android 6中的windowBackground(Marshmallow)

Hei*_*sch 13 android android-6.0-marshmallow

我使用以下元素为我的应用程序定义了一个基本样式:

<item name="android:windowBackground">@color/window_background</item>
Run Code Online (Sandbox Code Playgroud)

这为我的所有活动设置了背景颜色,直到我在Android 6上测试我的应用程序,其中所有背景都是白色的.在运行前棉花糖的设备上,背景仍然是color/window_background.

任何人都知道如何在Android 6上完成这项工作(或者为什么它不起作用)?

使用更多信息进行修改:我的目标是API 22,我没有更改以前版本的任何内容或升级API,只需在Android 6上运行即可更改背景.

小智 3

我还没有发现任何特定于棉花糖的东西会导致这种情况。所以我的建议是:

将背景颜色资源更改为可绘制形状资源。

从:

<item name="android:windowBackground">@color/window_background</item>
Run Code Online (Sandbox Code Playgroud)

到:

<item name="android:windowBackground">@drawable/window_background</item>

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <solid android:color="@color/window_background"/>
</shape>
Run Code Online (Sandbox Code Playgroud)

如果您还没有检查所有视图的不透明度:

确保您的 windowBackground 实际上是大部分 Activity 的背景(特别是在可滚动部分,其中最重要的是要避免过度绘制),并尽可能删除不透明的视图背景。

让你的 windowBackground 为你工作,而不是使用 null

我认为这很有趣,看看如何设置背景图层的优先级。我不确定您是否正在设置任何视图背景或如何设置应用程序,但这值得一读。

背景由多层组成,从后到前:

  • 主题的背景Drawable
  • 纯色(通过 setColor(int) 设置)
  • 两个 Drawable,先前的和当前的(通过 setBitmap(Bitmap) 或 setDrawable(Drawable) 设置),它们可能处于转换状态

后台管理器

我找不到 Marshmallow 中的主题或元素顺序是否有差异,似乎没有根本性的变化,我找不到任何错误。

我希望这有帮助,请告诉我,我可以再看一下。

如果这没有帮助,可能值得发布一些与问题相关的更多代码。干杯。