更新旧的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个小时的私人时间。我希望那些使它遭受不良业障的开发人员。
答案 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>