0

我已经创建了一个具有以下 XML 表示的自定义主题:

<style name="ABTheme" parent="android:style/Theme">
      <item name="android:textColor" >#ffbb22</ item>
      <item name="android:background" >#ff1a557c</ item>
      <item name="android:button" >@style/ABButton</ item>
</style >

我在另一个 XML 文件中实现了 ABButton :

<style name="ABButton" parent="android:Widget.Button">
    <item name="android:padding" >3dp</ item>
    <item name="android:background" >#121212</ item>
    <item name="android:textColor" >#ffffff</ item>
</style >

但是按钮样式不适用于按钮,并且按钮将具有默认的 Android 样式,有人可以告诉我如何解决这个问题
,谢谢

请注意,我申请ABTheme了我的主要活动

4

4 回答 4

2

将此添加到您的父样式

<item name="android:buttonStyle">@style/ABButton</item>
于 2013-10-07T06:32:01.873 回答
0
// try this
**themes.xml**
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="ABTheme" parent="android:Theme">
        <item name="myButton">@style/ABButton</item>
    </style >
</resources>
**styles.xml**
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="ABButton" parent="android:Widget.Button">
        <item name="android:padding">3dp</item>
        <item name="android:background">#121212</item>
        <item name="android:textColor">#ffffff</item>
    </style >
</resources>
**attrs.xml**
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <attr name="myButton" format="reference" />
</resources>

**xml**
<Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="My Custom Button"
 style="?myButton"/>

**AndroidManifest.xml**
<application
 android:label="@string/app_name"
 android:theme="@style/ABTheme"
 android:icon="@drawable/ic_launcher">
     // define your activity here
</application>
于 2013-10-07T06:31:02.433 回答
0

android:theme="@style/mytheme"在您的活动清单中添加。例如

 <activity
        android:name="com.riverwalklabs.eggzammobile.YourActivity"
        android:theme="@style/mytheme" 
        android:label="@string/app_name"
        android:noHistory="true"
        android:screenOrientation="portrait" >
    </activity>
于 2013-10-07T06:34:30.990 回答
0

问题是根主题随着 Honeycomb 而改变。以前是“android:style/Theme”现在是“android:Theme.Holo”。同样,以前的“android:Widget.Button”现在是“android:Widget.Holo.Button”。

我看到的另一个问题是您使用的是“android:button”而不是“android:buttonStyle”。

您必须为 API 11+ 创建一种样式,并为旧设备创建另一种样式(除非您不打算支持比 Honeycomb 更早的任何东西)。然后,您必须将它们放在单独的资源文件夹中。

它会是这样的:

res/values/style.xml:

<style name="ABTheme" parent="android:Theme">
      <item name="android:textColor" >#ffbb22</ item>
      <item name="android:background" >#ff1a557c</ item>
      <item name="android:buttonStyle">@style/ABButton</item>
</style >
<style name="ABButton" parent="android:Widget.Button">
    <item name="android:padding" >3dp</ item>
    <item name="android:background" >#121212</ item>
    <item name="android:textColor" >#ffffff</ item>
</style >

res/values-v11/style.xml:

<style name="ABTheme" parent="android:Theme.Holo">
      <item name="android:textColor" >#ffbb22</ item>
      <item name="android:background" >#ff1a557c</ item>
      <item name="android:buttonStyle">@style/ABButton</item>
</style >
<style name="ABButton" parent="android:Widget.Holo.Button">
    <item name="android:padding" >3dp</ item>
    <item name="android:background" >#121212</ item>
    <item name="android:textColor" >#ffffff</ item>
</style >
于 2013-10-07T06:42:47.540 回答