我正在尝试使用自己的 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 中的所有视图有什么建议吗?
非常感谢!