Cómo cambiar el selector de fecha de mi rueda giratoria a un calendario normal con una opción de entrada de teclado como se muestra en la imagen adjunta
Aquí está el código.
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) } } }Siga el siguiente código para lograr una vista de calendario de materiales.
(1) Agregue la siguiente dependencia en su aplicación Gradle.
implementación 'com.google.android.material:material:1.5.0'
(2) Utilice el siguiente estilo para su actividad.
<!-- 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) Establezca el estilo anterior en el archivo Manifest.xml con actividad.
<activity android:name=".DashboardActivity" android:screenOrientation="portrait" android:theme="@style/ScreenTheme" android:windowSoftInputMode="stateAlwaysHidden" />(4) Agregue el siguiente código con un clic de botón.
val datePicker = MaterialDatePicker.Builder.datePicker() .setTitleText("Select date") .setSelection(MaterialDatePicker.todayInUtcMilliseconds()) .build() datePicker.show(childFragmentManager,"")