Я пытаюсь изменить цвет кнопок и их рябь на панелях инструментов, не влияя на остальную часть приложения, но независимо от того, сколько разных способов я пробую, что-то в стилях «ломается».
До сих пор у меня были лучшие результаты (так как в этом случае другие стили нарушаются меньше всего) путем установки colorControlNormal
и colorControlHighlight
в теме root моего приложения, однако любой другой значок, для которого ?colorControlNormal
установлено для их оттенок также унаследует это изменение, а также любые ?selectableItemBackgroundBorderless
и цвет полос прокрутки.
Предыдущие попытки, которые привели к худшим результатам (или вообще никаких результатов), учитываются при определении стиля панели инструментов через тему приложения:
<item name="toolbarStyle">@style/ToolbarStyle</item>
и в стиле панели инструментов, определяющем свойства colorControl *
<style name="ToolbarStyle" parent="Widget.AppCompat.Toolbar">
<item name="colorControlNormal">@color/blue</item>
<item name="colorControlHighlight">@color/blue</item>
</style>
, абсолютно безрезультатно
Другая попытка была сделана через атрибут темы непосредственно в представление панели инструментов:
<androidx.appcompat.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ToolbarStyle"/>
Имеет результат, который я хотел, но также менял намного больше, чем я хотел; высота заголовка + субтитров становится такой же, как и высота панели инструментов, поскольку android:minHeight
больше не переопределяется, но если я переопределю это свойство в стилях, то представление поиска потеряет свое вертикальное выравнивание, кнопка «Назад» потеряет свою высоту, и т. д. c. Я попал в точку, в которой я не могу ничего исправить с помощью одной только темы / стиля.
Так что теперь я застрял в документации без подсказок о том, как я могу просто изменить цвета значков и их соответствующие колебания только цвета на панели инструментов, не влияя ни на что другое, кто-нибудь знает, как это сделать, не прибегая к этому программно?