更新旧的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个小时的私人时间。我希望开发人员能够遭遇一些不良业力。
所有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>