Android Dialog标题,标题,图标都消失了

时间:2015-03-30 07:03:36

标签: android dialog android-alertdialog android-dialogfragment

突然间,我的所有Dialog Headers都消失了。我已经尝试了几款手机(4.4.4和4.2.2)进行测试,但似乎仍在发生。

我不确定是什么原因引起的?我正在对我的应用程序进行一些更新(不是与任何对话框相关),我注意到所有对话框都已更改。我能想到的是,当我做了一个gradle同步或其他东西,它改变了我的应用程序主题。我使用Dialog片段是几个不同的地方,他们都改变了。

以下是我的一个Dialog Fragment的示例。

screencapture

我甚至试过指定这样的风格:

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), STYLE_NORMAL);

如何恢复标题和图标?

一些代码:

   AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), STYLE_NORMAL);
    builder.setIcon(R.drawable.password_icon);
    builder.setTitle(dialogTitle);
    builder.setMessage(dialogMessage);
    builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
            onDialogOkClick(dialog);
        }
    });
    LayoutInflater inflater = getActivity().getLayoutInflater();
    builder.setView(inflater.inflate(R.layout.enterudlcode_dialog, null));
    return builder.create();

这是上面屏幕截图的XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<EditText
    android:id="@+id/enterudlcode_dialog_editText_panelcode"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:ems="10"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:gravity="center_horizontal"
    android:inputType="numberPassword">

    <requestFocus />
</EditText>

<CheckBox
    android:id="@+id/enterudlcode_dialog_checkbox_remember_me"
    android:layout_margin="10dp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:checked="false"
    android:text="Remember Panel Code" />

</LinearLayout>

这是我的应用主题/样式文件:

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <!--
        Base application theme, dependent on API level. This theme is replaced
        by AppBaseTheme from res/values-vXX/styles.xml on newer devices.

    -->
    <style name="AppBaseTheme" parent="android:Theme.Light">
        <!--
            Theme customizations available in newer API levels can go in
            res/values-vXX/styles.xml, while customizations related to
            backward-compatibility can go here.

        -->
    </style>

    <!-- Application theme. -->
    <style name="AppTheme" parent="AppBaseTheme">
        <!-- All customizations that are NOT specific to a particular API-level can go here. -->
    </style>

    <style name="LoginFormContainer">
        <item name="android:layout_width">match_parent</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:padding">16dp</item>
    </style> 
 </resources>

1 个答案:

答案 0 :(得分:0)

我在代码中找到了此问题的原因。

builder.setTitle(dialogTitle);

dialogTitle为空。我在另一个类中更改了一个包名,这导致在我显示对话框标题的类中,dialogTitle为null。

我仍然不知道为什么整个标题消失了,它并没有放一个空标题。

但我希望有一天这可能对某人有所帮助。