如何在没有 "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
工作?或者另一种解决方法?
(我已经找到了如何完全禁用加载屏幕,但是第二次左右的等待并不理想。)
以下是可能的解决方法(第一个解决了):
- 使用
android:windowBackground
而不是 android:background
>> 需要使用资源颜色而不是硬编码颜色(即 @color/some_color
)
- 在
setContentView()
调用后立即使用 window.decorView.setBackgroundColor(some_color)
- 将
android:colorBackground
和 android:windowBackground
设置为相同的颜色,并删除 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
工作?或者另一种解决方法?
(我已经找到了如何完全禁用加载屏幕,但是第二次左右的等待并不理想。)
以下是可能的解决方法(第一个解决了):
- 使用
android:windowBackground
而不是android:background
>> 需要使用资源颜色而不是硬编码颜色(即@color/some_color
) - 在
setContentView()
调用后立即使用window.decorView.setBackgroundColor(some_color)
- 将
android:colorBackground
和android:windowBackground
设置为相同的颜色,并删除android:Background