Изменение стилей TimePickerDialog - PullRequest
0 голосов
/ 26 июня 2018

Я хочу изменить стиль моего TimePicker, но не могу изменить цвет циферблата и фона заголовка.Вот мой код в стиле XML -

    <style name="DateTimeDialog" parent="Theme.AppCompat.Dialog">
        <item name="android:colorBackground">@color/colorWhite</item>
        <item name="android:textColorPrimary">#000000</item>
        <item name="android:headerBackground">#000000</item>
        <item name="android:textColorSecondary">#000000</item>
        <item name="android:button">@color/colorWhite</item>
        <item name="android:colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="android:colorAccent">@color/colorSecondary</item>
        <item name="android:textColor">@color/colorSecondaryDark</item>
    </style>

Основной цвет - темно-синий, а акцент / вторичный цвет - светло-синий (на всякий случай, если вы хотите его изобразить).Вот как это выглядит в настоящее время -

Текущий стиль

enter image description here

Я хочу иметь возможность изменить этоСерый фон

ПРИМЕЧАНИЕ. Атрибут 'android: background' здесь не работает.Это только меняет цвет крошечной области за «:» во времени, отображаемом в заголовке.Любая помощь / ресурсы приветствуются.Спасибо!

Ответы [ 2 ]

0 голосов
/ 26 июня 2018

Вы можете использовать конструктор 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>
0 голосов
/ 26 июня 2018

Попробуйте вместо этого

    <style name="MyAppThemeFour" parent="Theme.AppCompat.Light">
    <item name="android:timePickerDialogTheme">@style/MyTimePickerDialogStyle</item>
</style>
<style name="MyTimePickerDialogStyle" 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>
</style> 

output

    <style name="MyTimePickerWidgetStyle" parent="@android:style/Widget.Material.TimePicker">
    <item name="android:headerBackground">#ffe082</item>
    <item name="android:numbersTextColor">#b71c1c</item>
    <item name="android:numbersInnerTextColor">#f44336</item>
    <item name="android:numbersSelectorColor">#33691e</item>
    <item name="android:numbersBackgroundColor">#ef9a9a</item>
    <item name="android:amPmTextColor">#9c27b0</item>
</style>

Примените его к таймеру как:

<TimePicker
android:id="@+id/timePicker"
android:theme="@style/MyTimePickerWidgetStyle"
style="@style/MyTimePickerWidgetStyle"
. . . />
...