你能帮我理解我对 Android 风格和主题的概念吗?
这是我的问题:我希望我的按钮根据以下属性运行:style="?android:attr/buttonStyleSmall"
在这种情况下,按钮如下所示:
因为我的背景是黑色的,我觉得我的按钮上有一个白色的字体颜色来获得更好的对比度。然后我决定在我的 styles.xml 文件中创建一个元素来覆盖buttonStyleSmall
样式并添加这种白色字体,以及一些其他更改:
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="MyTheme" parent="android:Theme.Holo.Light">
<item name="android:buttonStyle">@style/ButtonText</item>
</style>
<style name="ButtonText" parent="@android:attr/buttonStyleSmall">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">match_parent</item>
<item name="android:textColor">#ffffff</item>
<item name="android:gravity">center</item>
<item name="android:paddingLeft">20dp</item>
<item name="android:paddingRight">20dp</item>
<item name="android:paddingTop">10dp</item>
<item name="android:paddingBottom">10dp</item>
<item name="android:textSize">14sp</item>
<item name="android:textStyle">bold</item>
</style>
</resources>
现在,我创建了一个名为的主题MyTheme
,我计划将其应用于我的整个应用程序。这样我就不必在每次创建按钮时都声明按钮的样式。所以我只会有这样的按钮声明:
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
不幸的是,当我这样做时,这是我拥有的按钮:
发生了什么?我确实在我的样式中声明了父属性,那么为什么按钮中的灰色框消失了?它也不像一个按钮(即:当我点击它时,它不会改变颜色)。如果我这样声明按钮:
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/ButtonText"
android:text="Button" />
同样的问题也会发生。
我究竟做错了什么?
谢谢大家, 费利佩