DatePicker 内容被自定义对话框的标题重叠
DatePicker content is overlapped by title of custom dialog
我创建了自定义对话框片段以便能够使用 Joda 日期类型。
正在创建对话框。这是我自定义 DialogFragment 的方法。
public Dialog onCreateDialog(Bundle savedInstanceState) {
String title = getArguments().getString(KEY_TITLE, getString(R.string.dg_dp_title));
LocalDate date = (LocalDate) getArguments().getSerializable(KEY_DATE);
if (null == date) date = new LocalDate();
FragmentActivity context = getActivity();
@SuppressLint("InflateParams")
View view = LayoutInflater.from(context).inflate(R.layout.dialog_date_picker, null);
mDatePickerView = (DatePicker) view.findViewById(R.id.dg_dp_picker);
mDatePickerView.updateDate(date.getYear(), date.getMonthOfYear() - 1, date.getDayOfMonth());
return new AppDialogBuilder(context)
.setTitle(title)
.setView(view)
.setPositiveButton(R.string.dg_dp_button_positive, mListener)
.setNegativeButton(R.string.dg_dp_button_negative, mListener)
.create();
}
布局文件。
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<DatePicker
android:id="@+id/dg_dp_picker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:calendarViewShown="true"
android:datePickerMode="calendar"
android:spinnersShown="false"/>
</FrameLayout>
如果删除设置标题表单生成器,那么对话框看起来会很好
但我需要使用标题。想法?
您可以尝试制作自己的自定义标题布局,并调整您的标题大小
title_bar.xml(自定义标题布局)
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/title_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:textSize="15dp"
android:textStyle="bold"
/>
</LinearLayout>
现在您必须使用自定义标题设置对话框:
datePickerDialog.setCustomTitle(view_of_your_custom_title_layout);
我创建了自定义对话框片段以便能够使用 Joda 日期类型。
正在创建对话框。这是我自定义 DialogFragment 的方法。
public Dialog onCreateDialog(Bundle savedInstanceState) {
String title = getArguments().getString(KEY_TITLE, getString(R.string.dg_dp_title));
LocalDate date = (LocalDate) getArguments().getSerializable(KEY_DATE);
if (null == date) date = new LocalDate();
FragmentActivity context = getActivity();
@SuppressLint("InflateParams")
View view = LayoutInflater.from(context).inflate(R.layout.dialog_date_picker, null);
mDatePickerView = (DatePicker) view.findViewById(R.id.dg_dp_picker);
mDatePickerView.updateDate(date.getYear(), date.getMonthOfYear() - 1, date.getDayOfMonth());
return new AppDialogBuilder(context)
.setTitle(title)
.setView(view)
.setPositiveButton(R.string.dg_dp_button_positive, mListener)
.setNegativeButton(R.string.dg_dp_button_negative, mListener)
.create();
}
布局文件。
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<DatePicker
android:id="@+id/dg_dp_picker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:calendarViewShown="true"
android:datePickerMode="calendar"
android:spinnersShown="false"/>
</FrameLayout>
如果删除设置标题表单生成器,那么对话框看起来会很好
但我需要使用标题。想法?
您可以尝试制作自己的自定义标题布局,并调整您的标题大小
title_bar.xml(自定义标题布局)
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/title_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:textSize="15dp"
android:textStyle="bold"
/>
</LinearLayout>
现在您必须使用自定义标题设置对话框:
datePickerDialog.setCustomTitle(view_of_your_custom_title_layout);