web-dev-qa-db-fra.com

styles.xml hérite de "? android: attr / borderlessButtonStyle"?

Je voudrais personnaliser certains boutons image sans bordure. 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>

Cependant, l'erreur suivante est levée:

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

Existe-t-il un moyen d'hériter borderlessButtonStyle?

33
SecStone

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 code source

62
kip2

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

Choisissez un style de bouton sans bordure qui correspond à votre thème pour hériter. Tous les styles Android styles internes peuvent être trouvés sur http://developer.Android.com/reference/Android/R.style.html

Par exemple, votre application utilise le thème Holo Light (spécifiez dans AndroidManifest.xml), vous devez alors 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>
39
aleung

Vous pouvez utiliser ce style à la place pour l'API 11 et les versions supérieures:

<style name="EditNotesButton" parent="Android:Widget.Holo.Button.Borderless" />
6
Taoufix

Je pense que vous ne pouvez pas hériter de cette façon. Essaye ça:

<style name="EditNotesButton" parent="@Android:style/Widget">
    <!-- This will cause borderless button --> 
    <item name="Android:background">@Android:drawable/list_selector_background</item>
    ...
</style>
1
Tomáš Hubálek