【问题标题】:Defining Multiple Button Styles定义多个按钮样式
【发布时间】:2018-04-14 04:33:39
【问题描述】:

我找到了许多按钮样式的解决方案,但我在定义多个按钮样式时遇到了一个小问题。我正在编写一个计算器,我想为操作按钮和数字按钮设置不同的按钮样式。所以我必须定义 2 种不同的按钮样式。在我的 styles.xml 文件中,我添加了以下代码:

<resources>

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="buttonStyle">@style/OperationButtons</item>
    <item name="buttonStyle">@style/NumberButtons</item>
</style>

<style name="OperationButtons" parent="android:Widget.Button">
    <item name="android:background">#263238</item>
    <item name="android:paddingTop">15dp</item>
    <item name="android:paddingBottom">15dp</item>
    <item name="android:layout_width">0dp</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:layout_weight">.2</item>
    <item name="android:textColor">#fff</item>
    <item name="android:layout_margin">10dp</item>
    <item name="android:textSize">18sp</item>
</style>
<style name="NumberButtons" parent="android:Widget.Button">
    <item name="android:background">#607D8B</item>
    <item name="android:paddingTop">15dp</item>
    <item name="android:paddingBottom">15dp</item>
    <item name="android:layout_width">0dp</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:layout_weight">.2</item>
    <item name="android:textColor">#fff</item>
    <item name="android:layout_margin">10dp</item>
    <item name="android:textSize">18sp</item>
</style>

</resources>

但是,我似乎定义了两种不同的按钮样式,并且收到类似“Resource entry AppTheme has bag item buttonStyle.”之类的错误。

我该如何解决这个问题?

【问题讨论】:

    标签: android button styling


    【解决方案1】:

    您在AppTheme 中定义的buttonSyle 是默认值(因此您只能拥有一个)。
    但是您可以在布局中使用第二种样式:

    <Button
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     style="@style/NumberButtons"/>
    

    别忘了删除:

    <item name="buttonStyle">@style/NumberButtons</item>
    

    【讨论】:

    • 是的,但如果这样做,我的计算器应用程序将无法使用不同的按钮样式。我想要两种不同的按钮样式,一种用于“加法、乘法、除法等”等操作按钮。一个用于数字按钮,如 1,2,3,4...
    • 添加数字按钮时,请在 xml 中使用属性 style
    • 我想我明白你所说的。实际上,我什至不必将任何 buttonStyle 放到我的 XML 文件中。感谢您的回答。我不知道为什么我把它放在那里。可能是按照某人的回答。
    猜你喜欢
    • 2019-11-18
    • 1970-01-01
    • 2018-02-07
    • 1970-01-01
    • 2015-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多