我遇到了完全相同的问题!我在colors.xml上有这个
<resources>
<color name="white">#ffffffff</color>
</resources>
在styles.xml上
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowBackground">@color/white</item>
</style>
问题是,当在活动中使用片段(包含 ListView)时,ListView 在第一次运行时显示白色作为背景(这是我需要的),但在第二次运行时,ListView 背景为黑色。该问题仅在 Android 4.0 上存在(我没有在 4.1 上测试)但在 Android 4.3、4.4、5 等上运行良好。
原来只有白色有问题,当使用白色以外的颜色时,没有黑色背景问题!
因此,由于我想要一个白色背景,并且我不想过度绘制具有多个背景,因此在 styles.xml 上将白色设置为 windowBackground 很重要,但同时它会导致黑色背景问题!
因此,作为解决方案,我创建了另一种颜色,它不是完全白色,而是白色
<resources>
<color name="fakewhite">#fffefefe</color>
</resources>
在styles.xml上
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowBackground">@color/fakewhite</item>
</style>
因此,简而言之,对于 ListView 等视图,颜色 #ffffffff 会转换为 #00000000,我也注意到 ScrollView 上的这种行为。这可能不是一个完美的解决方案,但它对我有用!