【问题标题】:Android DialogFragment text color is white instead of blackAndroid DialogFragment 文本颜色是白色而不是黑色
【发布时间】:2015-12-29 23:23:36
【问题描述】:

我正在使用自定义适配器创建一个简单的 DialogFragment,但奇怪的是,当对话框出现时文本显示为白色。

class MyDialog extends DialogFragment {

        ListView listView;

        @NonNull
        @Override
        public Dialog onCreateDialog(Bundle savedInstanceState) {
            AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
            ArrayAdapter<Service> adapter = new MyAdaper(getContext(), items);
            TextView title = new TextView(getContext());
            title.setText("Hello");
            title.setGravity(Gravity.CENTER);
            title.setTextSize(18);
            title.setTextColor(Color.BLACK);
            builder.setCustomTitle(title);
            builder.setAdapter(adapter, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {

                }
            });
            return builder.create();
        }

适配器中膨胀的布局 xml 非常简单,只有一个 TextView(我没有指定任何颜色,但当我使用未指定颜色的 TextView 时,我希望它是黑色的,因为我的应用程序的其余部分)

我尝试过使用

AlertDialog.Builder(getActivity(), R.style.MyTheme);

但即使我在 MyThem 中指定 b black textColor,对话框仍然显示为白色文本

我错过了什么?

【问题讨论】:

  • ListView 项目有问题?它们在 textview 中是白色的?
  • 是的,我的列表视图的文本视图是白色的
  • 使用自定义布局和自定义样式的对话框,stackoverflow.com/questions/22655599/…
  • 我试过了,但是文字颜色还是白色
  • 这里有同样的问题。我会尝试在 xml 中手动将文本设置为黑色,但我很想知道为什么会这样。

标签: android text dialog fragment


【解决方案1】:

你可以为你的对话框创建样式。 例如:

  <style name="cust_dialog" parent="@android:style/Theme.Dialog">
    <item name="android:windowTitleStyle">@style/dialog_title_style</item>
  </style>

  <style name="dialog_title_style" parent="android:Widget.TextView">
    <item name="android:background">@android:color/holo_red_dark</item>
  </style>

比把它设置成 onCreate

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setStyle(DialogFragment.STYLE_NORMAL, R.style.cust_dialog);
  }

【讨论】:

  • 对不起,如果问题不够清楚。问题不在于标题,而在于对话框的内容(从适配器膨胀的部分)。尽管如此,我已经尝试过定义它们,然后在创建 Builder 时对其进行设置。但文字仍然是白色的! (顺便说一句,setStyle 似乎没有做任何事情,但是 new Builder(activity, them) 可以,但无法将血腥文本颜色更改为非白色
【解决方案2】:

&lt;item name="android:textColorPrimary"&gt;@color/your desired color&lt;/item&gt;

您的styles.xml 文件中Alert Dialog 样式中的这行代码将有助于更改AlertDialogBox 中消息正文的字体颜色。

【讨论】:

    【解决方案3】:

    试试builder.setMessage(R.id.&lt;yours id-name of TextView&gt;); 但必须在您的 XML 代码中定义 TextView 的颜色。

    【讨论】:

    • 标题的那部分有效,它显示为黑色。白色文本是来自适配器的 xml 中的文本
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多