Как применять ProgressBarStyle? - PullRequest
0 голосов
/ 13 ноября 2018

Я пытаюсь применить тему ко всем индикаторам выполнения в моем приложении.В манифесте я применяю собственную тему под названием AppTheme.В этом стиле я добавляю дополнительный элемент progressBarStyle, например, так:

<style name="AppTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
    ...
    <item name="android:progressBarStyle">@style/my_progress_bar</item>
</style>

И определяю стиль выполнения пользовательской панели следующим образом:

<style name="my_progress_bar" parent="Base.Widget.AppCompat.ProgressBar">
    <item name="android:indeterminateTint">@color/app_black</item>
    <item name="android:indeterminateTintMode">src_in</item>
</style>

Если применить этот стиль кдля отдельных представлений ProgressBar это работает, но я хочу применить его в своем манифесте через AppTheme, чтобы мне не приходилось указывать один и тот же tint и tintMode для каждого индикатора выполнения в приложении.Я использую устройство под управлением API 25.

Что я делаю не так?Спасибо за понимание.

Редактировать: после дальнейшего изучения, по какой-то причине добавление стиля в AppTheme не распространяется на манифест.Если я полностью заменю AppTheme своим стилем индикатора выполнения, это сработает.Но мне все еще нужны стили, определенные в AppTheme.это работает: <application ... android:theme="@style/my_progress_bar">

, но это не так: <application ... android:theme="@style/AppTheme">

Интересно то, что, если я удаляю все в AppTheme, кроме определяемого мной стиля индикатора выполнения, он не работает,Есть ли ошибка с вложенными стилями в Android?Мой манифест не видит progressBarStyle, определенный, когда я просто передаю его этому AppTheme:

<style name="AppTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
    <item name="android:progressBarStyle">@style/my_progress_bar</item>
</style>

1 Ответ

0 голосов
/ 13 ноября 2018

В вашем файле манифеста имеется следующее:

<application
        android:name="app"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme">

.......
</application>

добавьте следующее в свою тему приложения в файле style.xml :

<style name="AppTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
        <!--This will change the color of your progress bar throughout the whole app-->
        <item name="colorControlActivated">@color/app_black</item>
</style>
...