键盘键标签在按下时不会改变颜色

时间:2017-06-09 13:11:22

标签: android android-softkeyboard

我在我的应用程序的一个布局中使用了这个键盘

<android.inputmethodservice.KeyboardView
        android:id="@+id/keyboard_view"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_centerHorizontal="true"
        android:focusable="true"
        android:clickable="true"
        android:background="@color/lightBlue"
        android:shadowColor="@android:color/transparent"
        android:keyBackground="@drawable/list_item_selector"
        android:keyTextColor="@color/drawer_text_color_selector"
        android:focusableInTouchMode="true"
        android:visibility="visible"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintLeft_toLeftOf="parent" />

除了键内文字的颜色选择外,一切正常。当我按下它我想要它改变颜色。 如果是背景,它会正确更改,但文本保持相同的颜色

这是我用于文本颜色的xml

    <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="true" android:state_pressed="false" android:color="@color/bodyTextSelectedColor"/>
    <item android:state_focused="true" android:state_pressed="true" android:color="@color/bodyTextSelectedColor"/>
    <item android:state_focused="false" android:state_pressed="true" android:color="@color/bodyTextSelectedColor"/>
    <item android:state_checked="true" android:color="@color/bodyTextSelectedColor"/>
    <item android:color="@color/bodyTextColor"/>
</selector>

其中bodyTextSelectedColor为白色,bodyTextColor为黑色 我应该在我的KeyboardView或我的选择器中更改某些内容吗?

1 个答案:

答案 0 :(得分:2)

KeyBoardView不支持textColor的选择器,至少不正式支持。

documentation for KeyboardView中,android:keyBackground提到了选择器,而keyTextcolor的条目只是指出:

  

用于键中标签的颜色。

     

可以是颜色值,形式为“ #rgb”,“#argb”,“#rrggbb”或   “ #aarrggbb”。

更多证据表明您的语法似乎正确,并将其应用于keyBackground会按预期更改背景。