我有一个带日期选择器的ScrollView
在以前的Android版本中,日期选择器是这样的:

我可以滚动DatePicker日、月、年的单个元素,而不会出现任何问题
在Android Lollipop API level 21材料中,Datepiker是这样显示的:


如果我点击显示日历视图的月份,并且我不能更改月份,我只能选择日期。如果我尝试编辑年份,会显示一个年份滚动条,但如果我尝试对其进行tro滚动,则会滚动包含datepicker的整个布局,而不仅仅是日期。
calendarViewShown=false似乎被忽略了
我该如何解决这个问题?
发布于 2014-11-11 08:25:55
日历样式的日期选取器中不推荐使用calendarViewShown属性。如果希望恢复微调器样式的日期选择器,可以将datePickerMode属性设置为spinner。
<DatePicker
...
android:datePickerMode="spinner" />至于滚动问题,日历样式的日期选择器不支持嵌套滚动。
发布于 2020-01-20 03:59:09
第1步:创建微调器/日历日期选择器布局
.../main/res/layout/spinner_date_picker_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<DatePicker xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/datePicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:datePickerMode="spinner"
android:calendarViewShown="false" />.../main/res/layout/calendar_date_picker_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<DatePicker xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/datePicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:datePickerMode="calendar" />第-2步:在TextView上设置可点击行为以显示日期对话框。
.../main/res/layout/activity_layout.xml
<TextView
android:id="@+id/dateText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:clickable="true"
android:text="Date"
android:onClick="@{() -> viewModel.onClickDate()}"></TextView>第-3步:在onClickDate上显示对话框
override fun onClickDate() {
showDialogForDate()
}第-4步:将DatePicker布局设置为对话框视图。
private fun showDialogForDate() {
//Set spinner/calendar date picker layout
val spinnerDatePicker = layoutInflater.inflate(R.layout.spinner_date_picker_layout, null)
// On click listener for dialog buttons
val dialogClickListener = DialogInterface.OnClickListener { _, which ->
when (which) {
DialogInterface.BUTTON_POSITIVE -> {
activity!!.dateText.text = spinnerDatePicker.datePicker.dayOfMonth.toString() + "/" + (spinnerDatePicker.datePicker.month + 1) + "/" + spinnerDatePicker.datePicker.year
}
DialogInterface.BUTTON_NEGATIVE -> {
}
}
}
val builder = AlertDialog.Builder(context!!)
builder.setTitle(resources.getString(R.string.dialog_title))
.setView(spinnerDatePicker)
.setPositiveButton("Ok", dialogClickListener)
.setNegativeButton("Cancel", dialogClickListener)
.create()
.show()
}https://stackoverflow.com/questions/26854762
复制相似问题