如何在 Android Kotlin 中将日期选择器从微调器更改为日历对话框
How to change the date picker from spinner to calendar dialogue in Android Kotlin
如何使用键盘输入选项将我的微调器日期选择器更改为普通日历,如附图所示
这是代码。
private val datePickerDialog by lazy {
DatePickerDialog(requireActivity(), R.style.SpinnerDatePickerDialog).apply {
setTitle(R.string.select_date)
datePicker.maxDate = LocalDate.now().minusDays(1).toMillis()
setOnDateSetListener { _, year, month, dayOfMonth ->
viewModel.onDateSelected(year, month, dayOfMonth)
}
}
}
按照以下代码实现material日历视图。
(1) 在您的应用中添加以下依赖项 Gradle.
实施'com.google.android.material:material:1.5.0'
(2) 为您的 activity.
使用以下样式
<!-- Base application theme. -->
<style name="ScreenTheme" parent="Theme.MaterialComponents.Light.NoActionBar.Bridge">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimary</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="materialCalendarStyle">@style/Widget.MaterialComponents.MaterialCalendar</item>
<item name="materialCalendarFullscreenTheme">@style/ThemeOverlay.MaterialComponents.MaterialCalendar.Fullscreen</item>
<item name="materialCalendarTheme">@style/ThemeOverlay.MaterialComponents.MaterialCalendar</item>
</style>
(3) 在 Manifest.xml 文件中设置上述样式 activity.
<activity
android:name=".DashboardActivity"
android:screenOrientation="portrait"
android:theme="@style/ScreenTheme"
android:windowSoftInputMode="stateAlwaysHidden" />
(4) 单击按钮添加以下代码。
val datePicker =
MaterialDatePicker.Builder.datePicker()
.setTitleText("Select date")
.setSelection(MaterialDatePicker.todayInUtcMilliseconds())
.build()
datePicker.show(childFragmentManager,"")
- 如果你想要一个带片段的日历,请使用 childFragmentManager,否则请使用 supportFragmentManager 和 activity。
输出:
如何使用键盘输入选项将我的微调器日期选择器更改为普通日历,如附图所示
这是代码。
private val datePickerDialog by lazy {
DatePickerDialog(requireActivity(), R.style.SpinnerDatePickerDialog).apply {
setTitle(R.string.select_date)
datePicker.maxDate = LocalDate.now().minusDays(1).toMillis()
setOnDateSetListener { _, year, month, dayOfMonth ->
viewModel.onDateSelected(year, month, dayOfMonth)
}
}
}
按照以下代码实现material日历视图。
(1) 在您的应用中添加以下依赖项 Gradle.
实施'com.google.android.material:material:1.5.0'
(2) 为您的 activity.
使用以下样式 <!-- Base application theme. -->
<style name="ScreenTheme" parent="Theme.MaterialComponents.Light.NoActionBar.Bridge">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimary</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="materialCalendarStyle">@style/Widget.MaterialComponents.MaterialCalendar</item>
<item name="materialCalendarFullscreenTheme">@style/ThemeOverlay.MaterialComponents.MaterialCalendar.Fullscreen</item>
<item name="materialCalendarTheme">@style/ThemeOverlay.MaterialComponents.MaterialCalendar</item>
</style>
(3) 在 Manifest.xml 文件中设置上述样式 activity.
<activity
android:name=".DashboardActivity"
android:screenOrientation="portrait"
android:theme="@style/ScreenTheme"
android:windowSoftInputMode="stateAlwaysHidden" />
(4) 单击按钮添加以下代码。
val datePicker =
MaterialDatePicker.Builder.datePicker()
.setTitleText("Select date")
.setSelection(MaterialDatePicker.todayInUtcMilliseconds())
.build()
datePicker.show(childFragmentManager,"")
- 如果你想要一个带片段的日历,请使用 childFragmentManager,否则请使用 supportFragmentManager 和 activity。
输出: