Я тестировал свое приложение на эмуляторе Android L, и я заметил, что TimePickerDialog значительно изменился:
Это не соответствует теме моего приложения, и я хотел знать, можно ли получить старый стиль TimePickerDialog при работе на Android L.
Я тестировал свое приложение на эмуляторе Android L, и я заметил, что TimePickerDialog значительно изменился:
Это не соответствует теме моего приложения, и я хотел знать, можно ли получить старый стиль TimePickerDialog при работе на Android L.
Вы можете использовать конструктор TimePickerDialog с параметром theme
, чтобы указать тему.
TimePickerDialog(Context context,
int theme,
TimePickerDialog.OnTimeSetListener callBack,
int hourOfDay,
int minute,
boolean is24HourView)
Добавьте android: timePickerMode = "spinner" в XML
<TimePicker
android:id="@+id/timePicker1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:timePickerMode="spinner">
</TimePicker>
https://developer.android.com/reference/android/R.attr.html#timePickerMode
Вы можете выбирать между режимами spinner или часов. Этот атрибут доступен только с уровня API 21, до этого единственным доступным был режим spinner.
Если вы хотите, чтобы AM/PM был сборщиком вместо кнопки, я рекомендую использовать конструктор одиночных параметров с ContextThemeWrapper
:
new TimePicker(new ContextThemeWrapper(getActivity(), android.R.style.Theme_Holo_Light_Dialog_NoActionBar));
Если вы передадите тему в конструктор нескольких параметров, тогда вы получите довольно уродливую кнопку AM/PM, и двоеточие будет отсутствовать между столбцами часов и минут.
new TimePicker(getActivity(), null, TimePickerDialog.THEME_HOLO_LIGHT);
Как сказал LordRaydenMK, используйте конструктор TimePickerDialog
с параметром theme
и предоставьте эту тему: android.R.style.CustomDatePickerDialog
И в вашем Styles.xml
определите это:
<style name="CustomDatePickerDialog"
parent="Theme.AppCompat.Light.Dialog.Alert">
<item name="android:dialogTheme">@style/MyDialogTheme</item>
<item name="android:timePickerStyle">@style/MyDatePicker</item>
</style>
<style name="MyDialogTheme"
parent="Theme.AppCompat.Light.Dialog">
<item name="android:timePickerStyle">@style/MyDatePicker</item>
</style>
<style name="MyDatePicker"
parent="@android:style/Widget.Material.Light.TimePicker">
<item name="android:timePickerMode">spinner</item>
</style>