Android风格不起作用

时间:2016-05-25 06:39:46

标签: android xml android-layout android-theme android-styles

我正在尝试为按钮添加特定样式,问题是当我写这个时它在themes.xml中有效:

的themes.xml

    <style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
     <item name="colorControlHighlight">@color/background</item>
    <item name="colorButtonNormal">@color/white</item>
   </style>

mylayout.xml

 <Button
    android:id="@+id/play"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:layout_alignParentBottom="true"
    android:gravity="center"
    android:text="Play"
    android:textColor="@color/guillotine_background"
    android:textSize="25dp"
    android:textStyle="bold"/>

但是当我使用它时,我得不到相同的结果:

styles.xml

 <style name="MyColorButton" parent="AppTheme">
        <item name="colorControlHighlight">@color/background</item>
        <item name="colorButtonNormal">@color/white</item>
</style>

我将此行添加到mylayout.xml中的按钮标记

mylayout.xml

  style="@style/MyColorButton"

这不是必须返回相同的结果吗?

2 个答案:

答案 0 :(得分:3)

colorControlHighlightcolorButtonNormal是主题属性。它们用于用作活动主题的样式。它们不是Button的属性。如果您想在Button而非整个活动中使用它,请改用android:theme属性:

<Button
    android:theme="@style/MyColorButton"
    ... />

答案 1 :(得分:0)

dmk你做得对,你只需要改变按钮风格的父母。  只需设置parent =“Widget.AppCompat.Button”你的代码就可以了。

 <style name="appbutton" parent="Widget.AppCompat.Button">
    <item name="colorButtonNormal">@color/themeColordark</item>
    <item name="android:textColorPrimary">@color/white</item>
</style>

感谢