Как установить цвета атрибута на пользовательской клавиатуре?
Я пытаюсь заставить мою собственную клавиатуру изменить его цвета в соответствии с текущей темой в проекте, но она не работает, это мой код:
<?xml version="1.0" encoding="UTF-8"?>
<android.inputmethodservice.KeyboardView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/keyboard"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:keyBackground = "@drawable/keybackground"
android:keyTextColor="?attr/colorPrimary"
android:background="?attr/android:colorBackground"
android:keyTextSize="22sp"/>
Когда ставлю штатные цвета все работает отлично! Как я могу сделать это гибким?
1 ответ
Я не уверен, что это то, что вы ищете, но вы можете попробовать использовать пространство имен res-auto:
<android.inputmethodservice.KeyboardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:custom="http://schemas.android.com/apk/res-auto"
android:id="@+id/keyboard"
android:layout_width="match_parent"
android:layout_height="wrap_content"
custom:keyBackground = "@drawable/keybackground"
custom:keyTextColor="?attr/colorPrimary"
android:background="?attr/android:colorBackground"
custom:keyTextSize="22sp"/>
Если вы хотите изменить его динамически во время работы приложения, я думаю, что ответ - это правильный путь. Вещи, которые должны быть изменены динамически, предпочтительно выполняются в коде, в то время как статическое проектирование предпочтительно выполняется в xml.