我创建了自定义片段并设置了一些标题:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
getDialog().setTitle(R.string.personalAuthDialogMessage);
getDialog().setCanceledOnTouchOutside(false);
View v = inflater.inflate(R.layout.personal_pass_dialog, null);
personalPasswordEditText = (EditText) v.findViewById(R.id.personalPasswordEditText);
buttonPositive = (Button) v.findViewById(R.id.personAuthButtonPositive);
buttonNegative = (Button) v.findViewById(R.id.personAuthButtonNegative);
buttonPositive.setOnClickListener(this);
buttonNegative.setOnClickListener(this);
return v;
}
当我在我的活动中调用它时,一切都很好,除了标题的大小不适合屏幕。它看起来像这样:
原始邮件是“请确认您的密码”。
UPD。布局代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:id="@+id/personalDialogLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:inputType="textPassword"
android:id="@+id/personalPasswordEditText"
android:layout_gravity="center"/>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:layout_width="match_parent"
android:layout_height="80dip"
android:text="@string/confirmOk"
android:id="@+id/personAuthButtonPositive" android:layout_weight="1"/>
<Button
android:layout_width="match_parent"
android:layout_height="80dip"
android:text="@string/confirmCancel"
android:id="@+id/personAuthButtonNegative" android:layout_weight="1"/>
</LinearLayout>
答案 0 :(得分:0)
你有不同的选项来处理它。基本上你可以强制对话框的布局来增加它的宽度:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:id="@+id/personalDialogLayout"
android:layout_width="300dp"
android:layout_height="fill_parent">
但是这个解决方案不方便,因为有些屏幕比较小,如果你想让你的标题改变它可能不合适等等......
所以你可以做的是从Dialog中删除标题,使用以下代码:
setStyle(DialogFragment.STYLE_NO_TITLE, 0);
自己处理标题:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:id="@+id/personalDialogLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:id="@+id/dialogTitle"/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:inputType="textPassword"
android:id="@+id/personalPasswordEditText"
android:layout_gravity="center"/>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:layout_width="match_parent"
android:layout_height="80dip"
android:text="@string/confirmOk"
android:id="@+id/personAuthButtonPositive" android:layout_weight="1"/>
<Button
android:layout_width="match_parent"
android:layout_height="80dip"
android:text="@string/confirmCancel"
android:id="@+id/personAuthButtonNegative" android:layout_weight="1"/>
</LinearLayout>
并设置标题:
View v = inflater.inflate(R.layout.personal_pass_dialog, null);
TextView title = (TextView) v.findViewById(R.id.dialogTitle);
title.setText(R.string.personalAuthDialogMessage);