web-dev-qa-db-fra.com

Ajouter uniquement les bordures supérieure et inférieure sur LinearLayout

Je voudrais ajouter seulement une bordure inférieure et une bordure supérieure sur mon Linearlayout. J'ai essayé de faire ceci:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android" >

<item
    Android:bottom="1dp"
    Android:top="1dp">
    <shape Android:shape="rectangle">
        <solid Android:color="#FFFFFF" />
        <stroke
            Android:width="1dp"
            Android:color="#000" />
    </shape>
</item>
</layer-list>

Mais cela ajoute une bordure autour de la forme ..

Pourrais-tu m'aider s'il te plait ?

19
wawanopoulos

Faites ceci deux fichiers et mettez ce code. vous pouvez définir la bordure supérieure et inférieure,

main.xml

<TextView
      Android:text="This is textline"
      Android:background="@drawable/border_set"
/>

border_set.xml

Ce fichier situé dans le chemin complet project_root/res/drawable/border_set.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android" >
    <item>
      <shape 
        Android:shape="rectangle">
            <stroke Android:width="1dp" Android:color="#FF000000" />
            <solid Android:color="#FFDDDDDD" />

        </shape>
   </item>

   <item Android:top="1dp" Android:bottom="1dp"> 
      <shape 
        Android:shape="rectangle">
            <stroke Android:width="1dp" Android:color="#000" />
            <solid Android:color="#FFFFFF" />
        </shape>
   </item>

</layer-list>
23
Jay Patel

Je pense que vous pouvez créer ce dessin et l'utiliser comme arrière-plan:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">
   <item>
        <shape Android:shape="rectangle" >
            <solid Android:color="#000"/>
        </shape>
    </item>
    <item Android:bottom="1dp" Android:top="1dp">
        <shape Android:shape="rectangle" >
            <solid Android:color="#FFFFFF" />
        </shape>
    </item>
</layer-list>

Pensez à dessiner d'abord un rectangle avec une couleur de bordure, puis posez dessus un rectangle avec votre couleur d'arrière-plan en laissant 1dp en haut et en bas.

28
Tony Vu

Voici la solution. Cela fonctionne même avec un fond transparent.

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">

    <item Android:left="-2dp"  Android:right="-2dp">
        <shape Android:shape="rectangle">
            <stroke Android:width="2dp" Android:color="@color/borderColor" />
            <solid Android:color="@color/backgroundColor" />
        </shape>
    </item>

</layer-list>
20
dzikovskyy

Je pense que c'est la manière la plus simple:

<View
    Android:layout_width="match_parent"
    Android:layout_height="2dp"
    Android:background="#000000" />
8
doctorram

Ma version est celle-ci, seule est visible la bordure en haut et en bas, ne montre pas les bordures à gauche ni à droite. Et le fond est transparent.

<?xml version="1.0" encoding="utf-8"?>

<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android" 
    Android:layout_width="match_parent" 
    Android:layout_height="1dp">

    <item
        Android:left="-1dp"
        Android:right="-1dp"
        Android:top="-1dp"
        Android:bottom="1dp">
        <shape
            Android:shape="rectangle">
            <stroke
                Android:width="1dp"
                Android:color="@color/BlueGrey_colorPrimary" />
            <solid Android:color="@Android:color/transparent" />
        </shape>
    </item>

</layer-list>
6
Sercho

Un moyen rapide d'y parvenir:

  • Ajoutez une vue texte en bas et/ou en haut de votre mise en page.
  • Définissez la largeur de TextView sur "match_parent"
  • Réglez la hauteur de TextView à environ "1dp" ou trouvez l'épaisseur que vous souhaitez
  • Définissez l'arrière-plan de TextView à la couleur que vous souhaitez que la bordure soit

J'espère que ça aide!

5
Keith Davis

C'est simple. Dessinez 3 formes comme celle-ci.

<?xml version="1.0" encoding="utf-8"?>
  <layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android" >

    <item>
        <shape Android:shape="rectangle" >
            <solid Android:color="@color/menu_line_separator_in" />
        </shape>
    </item>
    <item Android:bottom="1.5dp">
        <shape Android:shape="rectangle" >
            <solid Android:color="@color/menu_line_separator_out" />
        </shape>
    </item>
    <item Android:top="1.5dp">
        <shape Android:shape="rectangle" >
            <solid Android:color="@color/menu_line_separator_out" />
        </shape>
    </item>

</layer-list>
1
extmkv

Vous pouvez suivre ce lien Existe-t-il un moyen simple d'ajouter une bordure en haut et en bas d'un Android View?

J'espère que vous êtes résolu à partir de ce lien. vous pouvez également résoudre Comment ajouter une bordure autour d'une disposition linéaire sauf en bas?

1
user3167588