Android 警告对话框文本不可见

Android alert dialog text is not visible

您好,我正在使用自定义主题来自定义我的提醒 dialog.My 问题是每当我将背景颜色设置为任何颜色时,我的文本就会变成 invisible.Here 是我的代码

<style name="CustomDialogFragment" parent="android:Theme.Dialog">

        <item name="android:windowNoTitle">true</item>
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:background">@color/black</item>
        <item name="textColorAlertDialogListItem">@color/white</item>

    </style> 

我们将不胜感激并提前致谢

相应地尝试以下样式:

<style name="AlertDialogCustom" parent="@android:style/Theme.Dialog">
    <item name="android:textColor">#FFFFFF</item>
    <item name="android:typeface">monospace</item>
    <item name="android:textSize">18sp</item>
    <item name="android:textColorAlertDialogListItem">#FFFFFF</item>
</style>

您需要设置

<item name="android:textColor">#54D66A</item> // Add your Hex color code

编辑

你应该使用android:textColorPrimary

<item name="android:textColorPrimary">#54D66A</item>

您必须为文本设置颜色,因为对话框背景颜色和文本颜色相同,所以文本不可见,设置

<item name="android:textColor">#FFFFFF</item>
        <item name="textColorPrimary">@color/primary_text_dark</item>

试试这个

Guide Line

您可以通过将主题应用到对话框来实现它。

使用android.R.style.Theme_Material_Light_Dialog_Alert作为对话主题。像这样

builder = new AlertDialog.Builder(mContext, android.R.style.Theme_Material_Light_Dialog_Alert);

希望它能奏效。

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
    <style name="CustomDialogFragment"   parent="@android:style/android:Theme.Dialog">
    <item name="android:textColor">#00FF00</item>
    <item name="android:typeface">monospace</item>
    <item name="android:textSize">10sp</item>
    </style>
    </resources>

我想这会对你有所帮助..

对于 Android N 支持,您应该使用:

<item name="android:textColorPrimary">#ffffff</item>
<item name="android:alertDialogTheme">@android:style/Theme.DeviceDefault.Light.Dialog.Alert</item>

在我的例子中,原因是因为使用了 "wrong" 布局充气器。花一整天解决这个问题:(

"Wrong" 充气机

LayoutInflater inflater = (LayoutInflater) Navigations.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

"Correct"充气机

LayoutInflater inflater = mainActivity.getLayoutInflater();