android - 不同设备上的时间选择器对话框主题
问题描述
我在不同设备上对 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
解决方案
我确实为我的 DatePicker 创建了一个主题,它通过使用如下属性来工作:
<style name="DatePickerTheme" parent="Theme.AppCompat.Light.Dialog">
<item name="colorAccent">@color/colorPrimary</item>
<item name="colorControlActivated">@color/colorAccent</item>
</style>
尝试删除android:
前缀
推荐阅读
- scala - 为什么 SBT 在编译时会找到导入,但在构建项目时却找不到?
- javascript - 如果通过 html 属性订阅,为什么我的 Web 组件的 CustomEvent 事件处理程序没有被调用?
- javascript - 从php中检索数据
- kubernetes - google PD 的 kubernetes 卷挂载问题(已安装 kubeadm)
- sql - 连接多个表时,总和是它应该是的倍数
- vb.net - 使用 Runspace 在 Visual Basic 中调用 powershell 脚本时出现 System.NullReferenceException
- ruby - 大型 JSON 字符串中的字符串插值
- python - 当python中的一行中有多个最大值时,在2维向量的每一行中查找最大值
- java - 只有在其他片段被销毁时才启动一个方法
- javascript - 对于 JavaScript 的 toLocaleDateString,是否有替代 dateStyle 和 timeStyle 的新标准?