style.xml inheritate"?android: attr / borderlessButtonStyle"?

j'aimerais personnaliser quelques ImageButtons sans frontières. Pour éviter la duplication de code, j'utilise 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>

Toutefois, l'erreur suivante est générée:

Error retrieving parent for item: No resource found that matches the given name '?android:attr/borderlessButtonStyle'.

Est-il possible d'hériter borderlessButtonStyle?

27
demandé sur SecStone 2012-10-21 18:05:25

5 réponses

borderlessButtonStyle disponible uniquement au niveau API 11 ou supérieur.

-6
répondu Arst 2012-11-03 10:46:30

pour AppCompat, vous pouvez hériter du style parent:

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

basé sur le code source

54
répondu kip2 2017-10-30 01:49:37

Vous ne pouvez pas hériter d'un attribut, vous devez hériter d'un style.

choisissez un bouton borderless style qui correspond à votre thème à hériter. Tous les styles internes D'Android peuvent être trouvés à http://developer.android.com/reference/android/R.style.html

par exemple, votre application utilise le thème Holo Light (spécifier dans AndroidManifest.xml), alors vous devrait hériter Widget.Holo.Light.Button.Borderless.Small style.

<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>
38
répondu aleung 2018-05-10 05:32:11

Vous pouvez utiliser ce style à la place pour API 11 et plus:

<style name="EditNotesButton" parent="android:Widget.Holo.Button.Borderless" />
6
répondu Taoufix 2013-05-20 18:19:06

je pense que vous ne pouvez pas hériter de cette façon. Essayez ceci:

<style name="EditNotesButton" parent="@android:style/Widget">
    <!-- This will cause borderless button --> 
    <item name="android:background">@android:drawable/list_selector_background</item>
    ...
</style>
1
répondu Tomáš Hubálek 2012-11-13 11:09:51