首页 > 解决方案 > 不同设备上的时间选择器对话框主题

问题描述

我在不同设备上对 TimePickerDialog 进行样式设置有问题

我创造了一种风格

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

    <item name="android:colorAccent">@android:color/transparent</item>

    <item name="android:textColorPrimary">@color/white</item>
    <item name="android:textColorSecondary">@color/white50</item>
    <item name="android:headerTimeTextAppearance">@color/white50</item>
    <item name="android:textColor">@color/white</item>
    <item name="android:windowBackground">@drawable/gradient_dialog</item>
    <item name="android:headerBackground">@drawable/gradient_dialog</item>
    <item name="android:textColorHighlight">@color/white</item>
    <item name="android:colorControlActivated">@color/white50</item>
    <item name="android:numbersBackgroundColor">@color/dark_three</item>
    <item name="android:numbersInnerTextColor" tools:ignore="NewApi">@color/white50</item>
    <item name="android:amPmTextColor">@color/white50</item>
    <item name="android:numbersTextColor">@color/white50</item>
    <item name="android:numbersSelectorColor">@color/lilac</item>

    <item name="buttonBarNegativeButtonStyle">@style/DialogButtonStyle</item>
    <item name="buttonBarPositiveButtonStyle">@style/DialogButtonStyle</item>
    <item name="buttonBarNeutralButtonStyle">@style/DialogButtonStyle</item>
    <item name="android:buttonBarNeutralButtonStyle">@style/DialogButtonStyle</item>
    <item name="android:buttonBarPositiveButtonStyle">@style/DialogButtonStyle</item>
    <item name="android:buttonBarNegativeButtonStyle">@style/DialogButtonStyle</item>

</style>

它在不同的设备和 api lvl-s Android 26 在此处输入图像描述 Android 23 在此处输入图像描述 Android 21 上看起来像这样在此处输入图像描述

我已经尝试过像这样创建它

TimePickerDialog(this,R.style.MyTimePickerStyle, listener, hour, minute, true)

或将其添加为 Activity 样式中的样式

<item name="android:timePickerDialogTheme">@style/MyTimePickerStyle</item>

两种情况都给出了相同的结果

使用自定义视图创建对话框并将样式添加到 TimePIcker 作为继承自的视图@android:style/Widget.Material.Light.TimePicker会在不同的设备上给出不同的结果,但这仍然不是假设的那样。

知道如何正确设置 TimePicker 的样式吗?

干杯 Wojtek

标签: androidandroid-stylesandroid-timepicker

解决方案


我确实为我的 DatePicker 创建了一个主题,它通过使用如下属性来工作:

<style name="DatePickerTheme" parent="Theme.AppCompat.Light.Dialog">
    <item name="colorAccent">@color/colorPrimary</item>
    <item name="colorControlActivated">@color/colorAccent</item>
</style>

尝试删除android:前缀


推荐阅读