ImageButtons没有从主题样式

时间:2016-03-29 23:16:40

标签: java android android-layout

我的ImageButton似乎不受样式文档中设置的参数的影响,但是其他Button是我以完全相同的方式定义其样式的时候。

这是我的styles.xml的精简版:

<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="android:buttonStyle">@style/Button</item>
    <item name="android:imageButtonStyle">@style/ImageButton</item>
</style>

<style name="Button" parent="@android:style/Widget.Button">
    <item name="android:background">@color/icons</item>
</style>

<style name="ImageButton" parent="@android:style/Widget.ImageButton">
    <item name="android:background">@color/icons</item>
</style>

使用这些样式时(我已尝试使用其他项目,但似乎没有任何效果),正常的Button将采用@color/icons的颜色,但是ImageButton s don'吨。如果我们使用style="@style/ImageButton"单独设置样式,它们也不会受到影响,但如果我在每个按钮上直接使用android:background="@color/icons"设置背景,则 会产生影响。

2 个答案:

答案 0 :(得分:0)

使用

  

style =“@ style / ImageButton”

在你的按钮体中,如:`

<Button
            style="@style/button_theme"
            android:text="Sign In" 
            android:id="@+id/id" />`

这是按钮样式

<style name="button_theme">
<item name="android:background">@drawable/button_shape</item>
<!--<item name="android:padding">5dp</item>-->

<item name="android:textColor">#ffffff</item>

<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>

答案 1 :(得分:0)

OR you can use these styles in your theme like you shown above

只需添加此行即可 : -

    <style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="android:buttonStyle">@style/Button</item>
    <item name="buttonStyle">@style/Button</item>
    <item name="android:imageButtonStyle">@style/ImageButton</item>
</style>

<style name="Button" parent="@android:style/Widget.Button">
    <item name="android:background">@color/icons</item>
</style>

<style name="ImageButton" parent="@android:style/Widget.ImageButton">
    <item name="android:background">@color/icons</item>
</style>