Изменить стиль TimePicker программно - PullRequest
0 голосов
/ 14 апреля 2020

Я использую timepickerdialog. Для его отображения я использую эту команду:

TimePickerDialog(
            view.context, R.style.TimePickerDialog,
            TimePickerDialog.OnTimeSetListener { view, hourOfDay, minute ->
                ...
            }, Calendar.getInstance().get(Calendar.HOUR),
            Calendar.getInstance().get(Calendar.MINUTE),
            DateFormat.is24HourFormat(view.context)
        ).show()

и в своем стиле TimePickerDialog я написал следующее:

<style name="TimePickerDialog" parent="Theme.AppCompat.Light.Dialog">

    <item name="colorPrimary">#FC6572</item>
    <item name="colorPrimaryDark">#FC6572</item>
    <item name="colorAccent">#FC6572</item>

    <item name="android:textColor">#FC6572</item>

    <item name="android:headerBackground">#fff</item>
    <item name="android:amPmTextColor">#FC6572</item>
    <item name="android:headerAmPmTextAppearance">#FC6572</item>
    <item name="android:headerTimeTextAppearance">@android:color/black</item>
    <item name="android:numbersInnerTextColor">#80000000</item>
    <item name="android:numbersSelectorColor">#FC6572</item>
    <item name="android:numbersTextColor">#80000000</item>

    <item name="android:numbersBackgroundColor">#fff</item>
</style>

Теперь это выглядит не очень хорошо. Я экспериментировал с таймером в макете. Когда я устанавливаю этот стиль как android:theme="@style/TimePickerDialog", он такой же, как в диалоге. Когда я установил это, используя style="@style/TimePickerDialog", это тоже не было хорошо. Но когда я устанавливаю тему и стиль за один раз так:

android:theme="@style/TimePickerDialog" style="@style/TimePickerDialog", тогда он работает нормально.

Так что я думаю, что мне нужно установить тему и стиль для моего timepickerdialog. Как установить тему программно я знаю: напиши это в конструкторе. Но я не знаю, как установить стиль программно. Итак, вот мой вопрос: как программно установить стиль (не тему)?

...