2011-12-13 50 views
1

我想重载一个android Button的外观,除了我只想重载一个属性,即android:background。我知道我可以写的东西,如:想要过载按钮样式

<style name="App_TextButtonStyle" parent="???"> 
    <item name="android:background">@drawable/filled_roundededges_nostroke</item> 
</style> 

parent="???"指定哪一种风格我继承。我的问题是我应该继承哪种风格,我从android的默认样式获取所有的按钮,并定义一个新的背景。

回答

1

这主要是为未来的访客,我找到了一个解决问题的办法:

<style name="App_TextButtonStyle" parent="@android:style/Widget.Button"> 
    <item name="android:background">@drawable/filled_roundededges_nostroke</item> 
</style> 

@android:style/Widget.Button引用当前选定的主题按钮的默认样式。您也可以使用全息小部件按钮样式@android:style/Widget.Holo.Button(自api 11起可用)。

您可能需要查看<android-sdk-install-folder>/platforms/android-XX/data/res/values中的文件styles.xmlthemes.xml,以查看android在给定平台版本中使用的所有样式。

+0

你是如何让你的主题使用这种风格的?添加这个不适用于我的: @ style/App_TextButtonStyle。 – Eliot

1

我已经使用样式按钮不指定“父”属性

<style name="BigButtonStyle"> 
    <item name="android:layout_width">wrap_content</item> 
    <item name="android:layout_height">wrap_content</item> 
    <item name="android:layout_gravity">center_horizontal</item> 
    <item name="android:background">@drawable/backbutton</item> 
    <item name="android:textColor">#FFFFFF</item> 
    <item name="android:textSize">8pt</item> 
    <item name="android:textStyle">bold</item> 
    <item name="android:layout_margin">10pt</item> 
</style> 

我认为这可能是足以让你定义你的风格没有“父”。

+0

我的问题是如何决定目前使用的主题颜色?我的意思是,在一个简单的主题中,一个白色的按钮可能看起来不错,但是在像4.0这样的卡片主题中,一个白色的按钮看起来很奇怪。我想只能重载属性,而剩下的则取决于当前的主题。 –

+0

这是最接近的,即使远非理想解决方案,我发现问题。 –