android: ScrollView 是否针对不同的 API 级别有不同的默认背景?

android: does ScrollView has different default backgrounds for different API level?

我有一个 ScrollView,里面有一些 children。

对于 API 23,ScrollView 具有白色背景。但对于 API 22 及以下,背景为灰色。我没有在 xml 或代码中设置背景。其余全部默认。 Activity 和 fragment 在布局中也有默认背景 xml。 Activity 主题默认为 Theme.Holo.Light.NoActionBar,v21 为 Theme.Material.Light.NoActionBar。

我在以下时间看到了这个:

samsung note 5 with 6.0.0: white

android emulator Nexus 6P with 6.0.0: white

samsung s6 with 5.1.1: gray

android emulator Nexus 6P with 5.1.1: gray

Xiaomi 4 LTE with 4.4.4: gray

android emulator Nexus 6P with 4.4.4: gray

根据上面的测试,我猜测背景与API级别有关。

如果我在 xml 中将背景设置为白色,对于 API 22 及以下,我可以看到白色背景。

有什么想法吗?

如果您没有提供明确的颜色,它可能会采用设备默认主题中的颜色。它不依赖于 API 级别,而是设备主题。 因此,您也有可能在两个不同的设备上看到相同 API 级别的不同颜色。 因此,如果您想在所有设备上保持一致,始终建议您明确设置您想要的颜色。

在您的样式中尝试使用此方法在不同 android API:

中使用相同的背景
<item name="android:windowBackground">@color/background</item>