DatePicker内容与自定义对话框

时间:2015-05-16 22:58:36

标签: android-layout android-fragments android-datepicker

enter image description here

我创建了自定义对话框片段以便能够使用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>

如果删除设置标题表单构建器,则对话框看起来不错

enter image description here

但我需要使用标题。想法?

1 个答案:

答案 0 :(得分:2)

您可以尝试制作自己的自定义标题布局,并调整标题大小

Date Picker with custom title

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);