定义主题的默认按钮样式

时间:2015-10-23 13:13:52

标签: android android-appcompat appcompat-v7-r22.2

我试图为主题应用默认按钮样式。主题已正确应用于Manifest中的应用程序。在我的gradle依赖项中,我有设计支持库版本22.2.1(这个库有appcompat库作为依赖项,所以我想我使用相同版本的appcompat支持库?)

当我像这样定义我的主题时,按钮样式在布局预览中正确应用,但现在当我启动应用程序时:

<style name="AppBaseTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:buttonStyle">@style/Widget.Button</item>
</style>

当我像这样定义我的主题时,按钮样式会在启动应用程序时正确应用,但不会在布局预览中应用:

<style name="AppBaseTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="buttonStyle">@style/Widget.Button</item>
    </style>

问题:我希望这在布局预览和运行时都有效,有没有办法实现这个目标?

这是一个糟糕的解决方案吗?

   <style name="AppBaseTheme" parent="Theme.AppCompat.Light.NoActionBar">
     <item name="buttonStyle">@style/Widget.Button</item>
     <item name="android:buttonStyle">@style/Widget.Button</item>
        </style>

1 个答案:

答案 0 :(得分:0)

使用AppCompat +22的彩色按钮样式 在你的styles.xml中

<style name="Button.Tinted" parent="Widget.AppCompat.Button">
        <item name="colorButtonNormal">YOUR_TINT_COLOR</item>
        <item name="colorControlHighlight">@color/colorAccent</item>
        <item name="android:textColor">@android:color/white</item>
</style>
中的

<Button
        android:id="@+id/but_next"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/but_continue"
        android:theme="@style/Button.Tinted" />

重要使用android:theme

https://gist.github.com/ingyesid/e513f47b573607205195