Как программно установить colorControlHighlight (цвет пульсации) для всех значков на панели инструментов? - PullRequest
0 голосов
/ 30 апреля 2020

Я знаю, что есть способ установить тему на панель инструментов в xml, например:

<androidx.appcompat.widget.Toolbar
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:theme="@style/ToolBarTheme"/>

и в стилях:

<style name="ToolBarTheme">
            <item name="android:colorControlHighlight">@color/white</item>
        </style>

Но есть ли способ установить его программно или использовать основную тему приложения специально для панели инструментов, а не просто переопределить colorControlHighlight в основной теме (потому что это также повлияет на другие представления)?

1 Ответ

1 голос
/ 01 мая 2020

Нашел решение, которое работает для меня. У меня есть класс CustomToolbar, который расширяет класс панели инструментов. И в конструкторе я использую ContextThemeWrapper с моей темой панели инструментов:

class CustomToolBar : Toolbar {

    constructor(context: Context?) : super(ContextThemeWrapper(context, R.style.ToolBarTheme))

    constructor(context: Context?, attrs: AttributeSet?) : super(ContextThemeWrapper(context, R.style.ToolBarTheme), attrs) 

    constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super(ContextThemeWrapper(context, R.style.ToolBarTheme), attrs, defStyleAttr)

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...