1

我正在尝试使用自己的 android 输入法,但目前我在样式/主题方面遇到了麻烦。问题如下:

我在 onCreateInputView 中膨胀并返回的视图包含一些普通的 android 按钮。我可以在这些按钮上收听 onClick 事件,它工作得很好,但是当我单击按钮时,它们的外观不会改变,这意味着它们不会像普通的 android 按钮那样改变背景颜色等。

但是,我可以应用包含选择器的自定义背景 xml:

样式.xml:

<style name="CategoryButton">
        <item name="android:background">@drawable/button</item>
</style>

按钮.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/button_pressed" android:state_pressed="true"></item>
    <item android:drawable="@drawable/button_normal"></item>

</selector>

这有效,按钮对用户输入做出反应。但是,按钮并不是我计划使用的唯一视图,而且很难复制默认的 android 外观。所以我试着寻找另一种方法。考虑到视图缺少默认主题,我对其应用了以下背景:

<style name="CategoryButton">
            <item name="android:background">@android:drawable/btn_default</item>
 </style>

但它没有显示任何效果。对于那些感兴趣的人,这里是@android:drawable/btn_default 的内容:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_window_focused="false" android:state_enabled="true"
        android:drawable="@drawable/btn_default_normal" />
    <item android:state_window_focused="false" android:state_enabled="false"
        android:drawable="@drawable/btn_default_normal_disable" />
    <item android:state_pressed="true" 
        android:drawable="@drawable/btn_default_pressed" />
    <item android:state_focused="true" android:state_enabled="true"
        android:drawable="@drawable/btn_default_selected" />
    <item android:state_enabled="true"
        android:drawable="@drawable/btn_default_normal" />
    <item android:state_focused="true"
        android:drawable="@drawable/btn_default_normal_disable_focused" />
    <item
         android:drawable="@drawable/btn_default_normal_disable" />
</selector>

但是,我找不到状态所指的可绘制对象。这可能是问题吗?您对如何将默认主题应用于该 IME 中的所有视图有什么建议吗?

非常感谢!

4

0 回答 0