如何将默认主题应用于Android IME中的视图?

时间:2013-08-13 10:15:49

标签: android view default ime theming

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

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

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

styles.xml:

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

button.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中的所有视图的建议?

非常感谢!

0 个答案:

没有答案