所有弹出式窗口都变成白色

时间:2019-03-15 12:27:57

标签: android

更新旧的android项目以使其能够使用Android Studio 3.2.1构建项目后,所有弹出窗口都变成白色。

所有AlertDialog,ProgressDialog,Spinner都具有白色背景和白色文本。

如果我在应用程序中更改主题,某些文本将变得可读但白度仍然存在。

我通过如下方式解决了其中一些问题: progressDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.DKGRAY)); 但这并不在所有地方都有效。

是什么原因?

这是我七年来第一次使用android,之前我在做iOS,所以这对我来说是新的领域。

更新:

评论有助于查明与主题有关的问题。 现在,挑战正在挖掘出导致白色背景的原因。

我必须将父级设置为我的自定义属性:

parent="Base.Theme.AppCompat"

因此,在我的自定义主题中,有以下属性:android:alertDialogTheme

    <style name="CustomMobileTheme.Base.Black" parent="Base.Theme.AppCompat">

    <item name="android:alertDialogTheme">@style/Theme.AppCompat.Dialog.Alert</item>

    <item name="android:colorPrimary">@color/actionBarColorBlackTheme</item>
    <item name="android:statusBarColor">#000000</item>

这使所有事情变得一团糟。我不知道android:alertDialogTheme的作用,它在Spinner文档中没有指定,我不得不手动注释掉主题中的大约200个属性,以找出原因,并花费大约13个小时的私人时间。我希望那些使它遭受不良业障的开发人员。

1 个答案:

答案 0 :(得分:0)

所有AlertDialog,ProgressDialog,Spinner都具有白色背景和白色文本。 可能是因为您的应用程序主题中的“ colorAccent”是白色。

请检查主题的“ colorAccent”。如果未指定,请用所需颜色指定。检查以下代码。

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>