Как изменить цвета в Android TimePicker?
Пишу приложение. Нужно, чтобы пользователь мог выбирать дату и время. С DatePicker разобрался. Однако с TimePicker никак не получается.
Вот код вызова:
private void showTimePickerDialog(final boolean isStartDate) {
TimePickerDialog timePickerDialog = new TimePickerDialog(this, R.style.CustomTimePickerDialog, (view, hourOfDay, minute) -> {
dateAndTime.set(Calendar.HOUR_OF_DAY, hourOfDay);
dateAndTime.set(Calendar.MINUTE, minute);
if (isStartDate) {
startDateTimeView.setText(String.format("%tF %tT", dateAndTime, dateAndTime));
showDatePickerDialog(false);
} else {
stopDateTimeView.setText(String.format("%tF %tT", dateAndTime, dateAndTime));
}
}, dateAndTime.get(Calendar.HOUR_OF_DAY), dateAndTime.get(Calendar.MINUTE), true);
timePickerDialog.show();
}
А вот стили:
<style name="CustomTimePickerDialog" parent="@style/ThemeOverlay.AppCompat.Dialog.Alert">
<item name="showTitle">false</item>
<item name="colorControlActivated">#ffd600</item>
<item name="colorAccent">#b71c1c</item>
<item name="android:textColorPrimary">#43a047</item>
<item name="android:textColorSecondary">#f44336</item>
<item name="android:numbersTextColor">#D71000</item>
<item name="android:numbersBackgroundColor">#0036D7</item>
<item name="backgroundColor">@color/background</item>
<item name="statusBarBackground">@color/background</item>
</style>
Вот текущий вид:
Какие-то стили работают. Например textColorPrimary, colorControlActivated и textColorSecondary. Но при этом фон не меняется, цвет цифр не меняется, заголовка тоже.
Подскажите, как мне поменять?
UPD:
ответ iramm помог. Однако встал новый вопрос. Внизу есть доп кнопка для ввода текста с клавы телефона. Как мне кнопку эту убрать или стилизовать новое окошко.
Теперь такие стили:
<style name="CustomTimePickerDialog" parent="@style/ThemeOverlay.AppCompat.Dialog.Alert">
<item name="showTitle">true</item>
<item name="colorControlActivated">#ffd600</item>
<item name="colorAccent">@color/main_color</item>
<item name="android:textColorPrimary">@color/secondary</item>
<item name="android:textColorSecondary">@color/main_color</item>
<item name="android:numbersTextColor">@color/main_color</item>
<item name="android:numbersBackgroundColor">@color/secondary</item>
<item name="backgroundColor">@color/background</item>
<item name="statusBarBackground">@color/background</item>
<item name="android:numbersInnerTextColor">@color/main_color</item>
<item name="android:timePickerMode">clock</item>
<item name="android:numbersSelectorColor">@color/white</item>
</style>
Скриншот окна второго
Ответы (1 шт):
Здесь имеют значение, что задано в качестве родительских тем/стилей.
<style name="Theme.AppTheme" parent="Theme.Material3.DayNight.NoActionBar">
<!-- Customize your theme here.-->
<item name="android:timePickerStyle">@style/MyTimePickerLight</item>
</style>
<!-- Light Time Picker-->
<style name="CustomTimePickerDialog" parent="android:Widget.Material.Light.TimePicker">
<item name="android:headerBackground">#1565C0</item>
<item name="android:numbersTextColor">#673AB7</item>
<item name="android:numbersSelectorColor">#FFEB3B</item>
<item name="android:numbersBackgroundColor">#61E761</item>
<item name="android:background">#FFC107</item>
</style>
Theme.AppTheme
- тема приложения, указанная в AndroidManifest.xml
.