在Android XML中,我可以设置buttonStyleSmall或Button.Small作为父级样式到自定义样式吗?

我想扩展Android的小button样式。 我可以做到这一点:

<Button android:id="@+id/myButton" style="?android:attr/buttonStyleSmall" android:layout_alignParentRight="true" android:layout_gravity="right" android:layout_height="wrap_content" android:layout_width="wrap_content" android:textSize="10dp" android:text="Click Here"/> 

但为了可重用性,我想将这些样式转换为自定义样式。 我如何添加buttonStyleSmall (或Widget.Button.Small ?)作为一个父母样式? 在我的自定义样式XML中是这样的:

 <style name="RightLink" parent="?android:attr/buttonStyleSmall"> <item name="android:layout_alignParentRight">true</item> <item name="android:layout_gravity">right</item> <item name="android:layout_height">wrap_content</item> <item name="android:layout_width">wrap_content</item> <item name="android:paddingLeft">2dp</item> <item name="android:paddingRight">2dp</item> <item name="android:textSize">10dp</item> </style> 

使用该样式的button声明:

 <Button android:id="@+id/myButton" style="@style/RightLink" android:text="Click Here"/> 

编辑

使用下面Lukas描述的正确语法(使用@android:attr/buttonStyleSmall作为父类),我仍然看到两者之间的区别:

带有buttonStyleSmall的button添加样式和内联样式:

PIC1

以buttonStyleSmall作为父级的自定义样式:

PIC2

我错过了什么?

Solutions Collecting From Web of "在Android XML中,我可以设置buttonStyleSmall或Button.Small作为父级样式到自定义样式吗?"

所以你试图从标准的Android风格inheritance风格的信息 。 为此,您需要像使用parent属性那样使用parent属性。

当inheritance一个标准风格的唯一例外是,你必须使用@不是一个?

 <style name="RightLink" parent="@android:attr/buttonStyleSmall"> 

关于如何为平台样式做些更多的事情(因为它和你自己创build的样式不同)可以在这里find。


玩了之后,我发现你的推销方式是正确的,但追索是错误的:

 <style name="RightLink" parent="@android:style/Widget.Button.Small"> 

这工作。

不同之处在于,通过使用style attr和代码来添加此项的整数常量是在Android中的R类中在attr子类中声明的。

XML样式定义(您可以从中实际inheritance)定义存储在R类的style -subclass中。 所以上面的行应该解决你的问题。