如何在没有 "android:background" 的情况下更改加载屏幕颜色?

How can I change the loading screen colour without "android:background"?

在我的应用加载之前,我可以使用

更改加载屏幕的颜色
<resources>
    <style name="Theme" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
        <item name="android:background">#FF444444</item>
    </style>
</resources>

但是,如果我这样做,我将无法再加载 material 设计库的 TimePickerView,因为它显示 Binary XML file line #57: Error inflating class com.google.android.material.timepicker.TimePickerView,更重要的是,Attempted to get ShapeAppearanceModel from a MaterialButton which has an overwritten background.

一旦我删除上面的 android:background 一切都很好。除了我的加载屏幕现在是白色的。

那么,有没有办法在没有上述 XML 属性的情况下更改加载屏幕颜色,希望我能让 material 的 TimePicker 工作?或者另一种解决方法?

(我已经找到了如何完全禁用加载屏幕,但是第二次左右的等待并不理想。)

以下是可能的解决方法(第一个解决了):

  1. 使用 android:windowBackground 而不是 android:background >> 需要使用资源颜色而不是硬编码颜色(即 @color/some_color
  2. setContentView() 调用后立即使用 window.decorView.setBackgroundColor(some_color)
  3. android:colorBackgroundandroid:windowBackground 设置为相同的颜色,并删除 android:Background