0

我正在尝试让我的自定义键盘根据项目中的当前主题更改他的颜色,但它失败了,这是我的代码:

<?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"/>

当我使用常规颜色时,一切正常!我怎样才能灵活地做到这一点?

4

1 回答 1

0

我不确定这是您要查找的内容,但您可以尝试使用 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 中完成。

于 2018-01-24T13:33:37.670 回答