Как я могу применить стиль к пользовательскому параметру выбора времени?

#android #xml #material-design

#Android #xml #материал-дизайн

Вопрос:

Я хочу изменить цвет текста, используя пользовательский стиль для моих предпочтений TimePicker, но, похоже, я не могу переопределить тему по умолчанию.

Вот мой файл ресурсов темы:

 <resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.Posture" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
    <!-- Primary brand color. -->
    <item name="colorPrimary">@color/purple_500</item>
    <item name="colorPrimaryVariant">@color/purple_700</item>
    <item name="colorOnPrimary">@color/white</item>
    <!-- Secondary brand color. -->
    <item name="colorSecondary">@color/purple_200</item>
    <item name="colorSecondaryVariant">@color/teal_700</item>
    <!-- Status bar color. -->
    <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
    <!-- Customize your theme here. -->
    <item name="android:colorBackground">@color/purple_500</item>
    <item name="android:textColor">@color/white</item>
    <item name="android:textColorSecondary">@color/grey_dark</item>
</style>
  

Я использую PreferenceDialogFragmentCompat и DialogPreference для создания пользовательского параметра выбора времени.

Вот макет, который я раздуваю в диалоговом окне:

 <?xml version="1.0" encoding="utf-8"?>
<TimePicker
    style="@style/TimePickerStyle"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@ id/timePicker"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>
  

Я попытался создать стиль, но когда я использую его в timepicker, он не применяется.

 <style name="TimePickerStyle">
    <item name="android:textColor">@color/blue</item>
    <item name="android:textColorPrimary">@color/blue</item>
    <item name="android:textColorSecondary">@color/blue</item>
</style>
  

Как я могу это решить?

Ответ №1:

Попробуйте:

 <?xml version="1.0" encoding="utf-8"?>
<TimePicker
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@ id/timePicker"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    style="@style/TimePickerStyle"/>
  

и стиль:

 <style name="TimePickerStyle">
    <item name="android:numbersTextColor">@color/blue</item>
    <item name="android:numbersSelectorColor">@color/blue</item>
    <item name="android:numbersBackgroundColor">@color/blue</item>
</style>
  

Комментарии:

1. извините, я забыл упомянуть, что я пробовал это, но это ничего не дает, я также попробовал android: theme и в предварительном просмотре это работает, но затем, когда я запускаю приложение, оно не меняется