自定义日期选择器在大型设备上看起来很糟糕

问题描述 投票:0回答:2

我在xml中创建了一个简单的自定义日期选择器:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    android:id="@+id/datePickerLayout"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center">

    <DatePicker
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/mDatePicker"
        android:layout_gravity="center_horizontal"
        android:spinnersShown="true"
        android:calendarViewShown="false"
        android:layout_alignParentTop="true"/>
</RelativeLayout>

在小型设备上看起来不错,但是在大型设备(平板电脑)上看起来像这样:

enter image description here

即使我将日期选择器的宽度和高度设置为wrap_content,窗口也要大得多。如何使日期选择器的内容填充其窗口?我还尝试通过应用自定义主题来更改文本大小,但无法解决问题]

如果有关系,这是我用来创建自定义日期选择器的自定义对话框构建器:

 val mCustomDatePicker = layoutInflater.inflate(R.layout.custom_date_picker, activityStageOne, false)

        val mDatePicker = mCustomDatePicker.findViewById(R.id.mDatePicker) as DatePicker
        mDatePicker.maxDate = (Calendar.getInstance().getTime().getTime())
//        mDatePicker.maxDate = (y)

        val mDialog = AlertDialog.Builder(this)
        mDialog.setView(mCustomDatePicker)

        addListenersForEditText()


        mDialog.setPositiveButton("OK", object : DialogInterface.OnClickListener {
            override fun onClick( dialog: DialogInterface, which: Int) {
                ageET.clearFocus()
                val mCalendar  = Calendar.getInstance()
                mCalendar.set(mDatePicker.year, mDatePicker.month, mDatePicker.dayOfMonth)

                val dateFormat = SimpleDateFormat(DATE_PATTERN)
                try {
                    age = dateFormat.format(mCalendar.time)
                } catch (e: ParseException) {
                    e.printStackTrace()
                }

                ageET.setText((mDatePicker.month + 1).toString() + " / " + mDatePicker.dayOfMonth.toString() + " / " + mDatePicker.year.toString())
            }
        }).setNegativeButton("Cancel", object: DialogInterface.OnClickListener {
            @Override
            override fun onClick( dialog: DialogInterface, which: Int) {
                ageET.clearFocus()
                dialog.dismiss()
            }
        })


        mDialog.create()
android xml android-datepicker
2个回答
0
投票

0
投票
© www.soinside.com 2019 - 2024. All rights reserved.