我想自定义一些无边框的ImageButtons。为避免代码重复,我使用styles.xml
:
<style name="EditNotesButton" parent="?android:attr/borderlessButtonStyle">
<item name="android:layout_width">25dp</item>
<item name="android:layout_height">25dp</item>
<item name="android:scaleType">fitCenter</item>
</style>
但是,抛出以下错误:
Error retrieving parent for item: No resource found that matches the given name '?android:attr/borderlessButtonStyle'.
有没有办法继承 borderlessButtonStyle ?
答案 0 :(得分:56)
对于AppCompat,您可以从父样式继承:
<style name="MyBordelessButtonStyle" parent="@style/Widget.AppCompat.Button.Borderless">
<item name="android:textSize">@dimen/<your size></item>
<!-- other items here -->
</style>
答案 1 :(得分:38)
您无法继承属性,您必须继承样式。
选择一个与您的主题相匹配的无边框样式以继承。所有Android内部样式都可以在http://developer.android.com/reference/android/R.style.html
找到例如,您的应用程序使用Holo Light主题(在AndroidManifest.xml
中指定),那么您应该继承Widget.Holo.Light.Button.Borderless.Small
样式。
<style name="EditNotesButton" parent="@android:style/Widget.Holo.Light.Button.Borderless.Small">
<item name="android:layout_width">25dp</item>
<item name="android:layout_height">25dp</item>
<item name="android:scaleType">fitCenter</item>
</style>
答案 2 :(得分:6)
您可以将此样式用于API 11及更高版本:
<style name="EditNotesButton" parent="android:Widget.Holo.Button.Borderless" />
答案 3 :(得分:1)
我认为你不能以这种方式继承。试试这个:
<style name="EditNotesButton" parent="@android:style/Widget">
<!-- This will cause borderless button -->
<item name="android:background">@android:drawable/list_selector_background</item>
...
</style>
答案 4 :(得分:-6)
borderlessButtonStyle仅在API级别11或更高级别上可用。