38

我想定制一些无边框的 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

4

5 回答 5

77

对于 AppCompat,您可以从父样式继承:

<style name="MyBordelessButtonStyle" parent="@style/Widget.AppCompat.Button.Borderless">
        <item name="android:textSize">@dimen/<your size></item>
        <!-- other items here -->
</style>

基于源代码

于 2015-06-21T13:56:10.510 回答
39

你不能继承一个属性,你必须继承一个样式。

选择与您的主题相匹配的按钮无边框样式以继承。所有 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>
于 2012-12-13T14:29:26.253 回答
7

您可以将此样式用于 API 11 及更高版本:

<style name="EditNotesButton" parent="android:Widget.Holo.Button.Borderless" />
于 2013-05-20T18:19:06.580 回答
1

我认为你不能以这种方式继承。试试这个:

<style name="EditNotesButton" parent="@android:style/Widget">
    <!-- This will cause borderless button --> 
    <item name="android:background">@android:drawable/list_selector_background</item>
    ...
</style>
于 2012-11-13T11:09:51.650 回答
-9

borderlessButtonStyle 仅适用于 API 级别 11 或更高级别。

于 2012-11-03T10:46:30.687 回答