android - 定义多个按钮样式

标签 android button styling

我找到了很多按钮样式的解决方案,但我在定义多个按钮样式方面遇到了一个小问题。我正在编写一个计算器,我想为操作按钮和数字按钮设置不同的按钮样式。所以我必须定义 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 already has bag item buttonStyle.”的错误。

我该如何解决这个问题?

最佳答案

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

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

不要忘记删除:

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

关于android - 定义多个按钮样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47061963/

相关文章:

Android 语音 - 如何在 Android 中阅读文本?

java - Android - 以编程方式在 EditText 内居中文本

java - 找不到 GlideApp

flutter - 如何从Stateless类中的onPressed调用StatefulWidget的方法?

html - 引导按钮问题

html - 使用 CSS 和 spritesheet 中的多个图像设计按钮样式

android - 用于矩形相交计算的 Minkowski 和

Android检测您何时按住按钮

html - 如何设置 Stripe 信用卡字段的样式?

html - 使用 CSS 设置样式 - float 删除样式