Можно ли изменить стиль Android L TimePickerDialog?
Я тестировал свое приложение на эмуляторе Android L, и я заметил, что TimePickerDialog значительно изменился на это:
Это не соответствует теме моего приложения, и я хотел бы знать, можно ли получить старый стиль TimePickerDialog при работе на Android L.
3 ответов
можно использовать 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, а двоеточие будет отсутствовать между столбцами hour и minute.
new TimePicker(getActivity(), null, TimePickerDialog.THEME_HOLO_LIGHT);