我的主要活动视图中有三个简单的按钮。 我想要做的是对我的所有按钮应用按钮式,但我没有这样做。
这是我的xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/minecraft_portrait"
android:alpha="0.75"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:id="@+id/txtAppName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:text="@string/app_name_readable"
android:textSize="32sp"
android:textColor="@android:color/white" />
<Button
android:id="@+id/btnCrafting"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:background="@drawable/button_selector"
android:onClick="craftingButtonClicked"
android:text="@string/crafting" />
<Button
android:id="@+id/btnServerCommands"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_alignLeft="@id/btnCrafting"
android:layout_below="@id/btnCrafting"
android:layout_marginTop="20dp"
android:background="@drawable/button_selector"
android:onClick="commandsButtonClicked"
android:textColor="@android:color/white"
android:text="@string/servercommands" />
<Button
android:id="@+id/btnVideos"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_alignLeft="@id/btnServerCommands"
android:layout_below="@id/btnServerCommands"
android:layout_marginTop="20dp"
android:background="@drawable/button_selector"
android:onClick="videosButtonClicked"
android:text="@string/videos" />
</RelativeLayout>
这是res / values文件夹中的style.xml:
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="AppBaseTheme" parent="android:Theme.Light">
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<item name="android:buttonStyle">@style/ButtonTheme</item>
</style>
<style name="ButtonTheme" parent="android:Widget.Button">
<item name="android:textColor">@android:color/white</item>
<item name="android:background">@android:color/darker_gray</item>
<item name="android:typeface">monospace</item>
<item name="android:textSize">32sp</item>
</style>
</resources>
我的清单文件中的主题定义:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
....
为什么风格不适用于我的按钮? 我已经将一个按钮的文本颜色设置为白色,只是为了看到任何差异。
答案 0 :(得分:37)
使用支持库时,按钮样式必须应用为:
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<item name="android:buttonStyle">@style/ButtonTheme</item>
<item name="buttonStyle">@style/ButtonTheme</item>
</style>
请注意重复但没有命名空间
答案 1 :(得分:3)
您发布的代码正在运行。请在xml中的按钮上添加样式,以查看它是否适合您。
<Button
style="@style/ButtonTheme"
android:id="@+id/btnCrafting"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:background="@drawable/button_selector"
android:onClick="craftingButtonClicked"
android:text="@string/crafting" />
答案 2 :(得分:0)
在更改样式或清单文件时,尝试在项目上运行“clean”。