我无法更改选择器颜色和TimePicker的其他部分。
到目前为止,我可以更改标题颜色和背景,但无法更改内圆和文本颜色。
更改自定义主题link。
我的代码:
<TimePicker
android:id="@+id/tp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:timePickerMode="clock"
android:headerBackground="#565466"
android:amPmBackgroundColor="#500126"
android:numbersBackgroundColor="#57e326"
android:numbersTextColor="#995394"
android:numbersSelectorColor="#675543"
android:textColorSecondary="#897530"
android:textColorPrimary="#359875"
/>
最佳答案
基本模式
您所要做的就是在“Activity ”主题中设置强调色:
<item name="colorAccent">#3333cc</item>
这将为您设置所有颜色,这样您就不会弄乱样式。(这也意味着您不应该直接在TimePicker上设置
amPmBackgroundColor
之类的值,而让Android为您完成这些工作。)高级模式
如果要单独指定所有可能的值,请执行以下操作:
首先在“Activity ”主题中定义以下内容:
<item name="android:timePickerStyle">@style/Theme.MyTheme.TimePicker</item>
然后创建适当的样式:<style name="Theme.MyTheme.TimePicker" parent="android:Widget.Material.Light.TimePicker">
<item name="android:timePickerMode">clock</item>
<item name="android:headerBackground">#ff555555</item>
<item name="android:numbersTextColor">?android:attr/textColorPrimaryActivated</item>
<item name="android:numbersInnerTextColor">?android:attr/textColorSecondaryActivated</item>
<item name="android:numbersSelectorColor">?android:attr/colorControlActivated</item>
<item name="android:numbersBackgroundColor">#ff555555</item>
<item name="android:amPmTextColor">?android:attr/textColorSecondary</item>
</style>
请注意numbersInnerTextColor
仅在API级别23中可用,并且无法设置其他样式(例如headerTextColor
)(或者至少我无法使其工作)。我建议不要使用“高级”模式,因为TimePicker应该与包含的Activity具有相同的颜色,否则可能会以不好的方式影响您的UX。