Comment créer des boutons Borderless dans Android [dupliquer]

cette question a déjà une réponse ici:

Le Android "instructions de Conception 151980920" dis à utiliser sans bordure des boutons (voir photo ci-dessous), mais ne pas vraiment expliquer comment. Quelqu'un a posé la même question il y a quelques semaines ici: comment créer des boutons standard Borderless (comme dans le design guidline mentionné)? et il y avait une réponse marquée comme "la" réponse, mais je suis toujours perdu et je ne vois pas d'ajouter des commentaires à une question qui a été "fermé"

La réponse-er dit

"Regarder dans le thème attributs buttonBarStyle , buttonBarButtonStyle , et borderlessButtonStyle "

mais je ne sais toujours pas comment utiliser ces choses. J'ai cherché un peu sur Google et je n'ai rien trouvé donc j'ai pensé que je pourrais poser la question à nouveau, et j'espère que quelqu'un peut fournir un peu plus de détails sur la façon dont cela fonctionne.

enter image description here

79
demandé sur Community 2012-02-07 01:57:26

8 réponses

j'ai pensé que j'avais résolu cela quand j'ai regardé ici il y a quelques semaines et j'ai remarqué la réponse à propos de l'utilisation d'un fond transparent, mais ce n'est pas tout à fait suffisant parce qu'il empêche le bouton d'être mis en évidence lorsqu'il est pressé.

aussi, mettre le style à Widget.Holo.Button.Borderless n'est pas approprié parce qu'il rend les limites de bouton à grand.

pour comprendre cela une fois pour toutes, je vérifie le code source android pour l'application Calendrier standard et trouvé qu'il utilise le suivant:

android:background="?android:attr/selectableItemBackground"

le fait de cette façon assure que le bouton est sans frontières et la taille correcte.

136
répondu Paul Drummond 2012-03-30 23:07:43

regardez ça: http://developer.android.com/guide/topics/ui/controls/button.html#Borderless

l'attribut sur votre Button ou ImageButton étiquette:

    style="?android:attr/borderlessButtonStyle"
71
répondu Dalc 2012-08-18 20:16:34

si vous utilisez ActionbarSherlock...

<Button 
  android:id="@+id/my_button" 
  style="@style/Widget.Sherlock.ActionButton" />
24
répondu WindRider 2012-12-07 13:34:10

il y a quelques jours encore une fois.

voici ma solution:

cela se fait en 2 étapes: le réglage de l'attribut de fond de bouton à android:attr/selectablitembackground vous crée un bouton avec la rétroaction, mais pas d'arrière-plan.

android:background="?android:attr/selectableItemBackground"

la ligne pour diviser le bouton borderless du reste de vous layout est fait par une vue avec l'arrière-plan android: attr / dividerVertical

android:background="?android:attr/dividerVertical"

pour une meilleure compréhension voici une mise en page pour une combinaison de boutons OK / Cancel borderless en bas de votre écran (comme dans l'image de droite ci-dessus).

<RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="48dp"
        android:layout_alignParentBottom="true">
        <View
            android:layout_width="match_parent"
            android:layout_height="1dip"
            android:layout_marginLeft="4dip"
            android:layout_marginRight="4dip"
            android:background="?android:attr/dividerVertical"
            android:layout_alignParentTop="true"/>
        <View
            android:id="@+id/ViewColorPickerHelper"
            android:layout_width="1dip"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_alignParentBottom="true"
            android:layout_marginBottom="4dip"
            android:layout_marginTop="4dip"
            android:background="?android:attr/dividerVertical" 
            android:layout_centerHorizontal="true"/>
        <Button
            android:id="@+id/BtnColorPickerCancel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:layout_toLeftOf="@id/ViewColorPickerHelper"
            android:background="?android:attr/selectableItemBackground"
            android:text="@android:string/cancel" 
            android:layout_alignParentBottom="true"/>
        <Button
            android:id="@+id/BtnColorPickerOk"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:background="?android:attr/selectableItemBackground"
            android:text="@android:string/ok" 
            android:layout_alignParentBottom="true" 
            android:layout_toRightOf="@id/ViewColorPickerHelper"/>
    </RelativeLayout>
18
répondu KarlKarlsom 2012-07-14 05:27:05

ce code fonctionne pour moi:

<View
    android:layout_width="match_parent"
    android:layout_height="1dip"
    android:background="?android:attr/dividerVertical" />

<LinearLayout
    style="?android:attr/buttonBarStyle"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:measureWithLargestChild="true"
    android:orientation="horizontal"
    android:paddingLeft="2dip"
    android:paddingRight="2dip"
    android:paddingTop="0dip" >

    <Button
        android:id="@+id/cancel"
        style="?android:attr/buttonBarButtonStyle"
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:onClick="onClickCancel"
        android:text="@string/cancel" />

     <Button
        android:id="@+id/info"
        style="?android:attr/buttonBarButtonStyle"
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:onClick="onClickInfo"
        android:visibility="gone"
        android:text="@string/info" />

    <Button
        android:id="@+id/ok"
        style="?android:attr/buttonBarButtonStyle"
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:onClick="onClickSave"
        android:text="@string/save" />
</LinearLayout>

je montre les 3 boutons du bas

12
répondu Mirko 2013-04-27 18:04:18
android:background="@android:color/transparent"
8
répondu Rich 2012-02-06 21:58:35
<Button android:id="@+id/my_button" style="@android:style/Widget.Holo.Button.Borderless" />
6
répondu jgani 2012-02-08 07:38:51

vous devez également mettre les marges et le rembourrage de l'image à 0. Regardez aussi la deuxième, non marquée réponse à comment créer des boutons Sans Frontières standard (comme dans le design guidline mentionné)?

0
répondu Gangnus 2017-05-23 12:18:07