我找到了许多按钮样式的解决方案,但我在定义多个按钮样式方面遇到了一个小问题。我正在编写一个计算器,我想为操作按钮和数字按钮设置不同的按钮样式。所以我不得不定义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>
然而,似乎我定义了两种不同的按钮样式,我收到的错误如&#34; 资源条目AppTheme已经有了包项目buttonStyle。&#34; < / p>
我该如何解决这个问题?
答案 0 :(得分:2)
您在buttonSyle
中定义的AppTheme
是默认设置(因此您只能拥有一个)。
但您可以在布局中使用第二种样式:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/NumberButtons"/>
不要忘记删除:
<item name="buttonStyle">@style/NumberButtons</item>