突然间,我的所有Dialog Headers都消失了。我已经尝试了几款手机(4.4.4和4.2.2)进行测试,但似乎仍在发生。
我不确定是什么原因引起的?我正在对我的应用程序进行一些更新(不是与任何对话框相关),我注意到所有对话框都已更改。我能想到的是,当我做了一个gradle同步或其他东西,它改变了我的应用程序主题。我使用Dialog片段是几个不同的地方,他们都改变了。
以下是我的一个Dialog Fragment的示例。
我甚至试过指定这样的风格:
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>
答案 0 :(得分:0)
我在代码中找到了此问题的原因。
builder.setTitle(dialogTitle);
dialogTitle
为空。我在另一个类中更改了一个包名,这导致在我显示对话框标题的类中,dialogTitle为null。
我仍然不知道为什么整个标题消失了,它并没有放一个空标题。
但我希望有一天这可能对某人有所帮助。