web-dev-qa-db-fra.com

Comment mettez-vous une bordure autour d'un ListView?

J'aimerais placer une bordure de quelques pixels autour de ma liste. Je veux qu'il fasse tout le tour de la liste. Comment puis-je faire ceci? Merci

42
Androider

Pour cela, prenez d'abord LinearLayout et assignez cette mise en page linéaire avec une couleur et créez une vue liste dans cette mise en page linéaire. Définissez la propriété Android:layout_margin="10dp" pour la vue liste. Cela signifie que sur les 4 côtés, il restera de l’espace de 10dp. Ceci est indiqué comme la bordure de la vue liste.

16
Pinki

L'autre façon de le faire est de créer une ressource frontière qui peut ensuite être réutilisée. Cela signifie également que vous n'aurez pas besoin de créer de présentation supplémentaire pour la mettre en œuvre.

  1. créer une ressource dessinable

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:Android="http://schemas.Android.com/apk/res/Android" Android:shape="rectangle" >
       <!-- use this for transparent -->
       <!-- <solid Android:color="#00000000" /> -->
       <!-- use this for a background colour -->
       <solid Android:color="#FFF" />
       <stroke Android:width="2dip" Android:color="#FF0000" />
    </shape>
    
  2. puis le définir comme arrière-plan listview

    <ListView
        Android:id="@id/Android:list"
        Android:layout_width="match_parent"
        Android:layout_height="match_parent"
        Android:background="@drawable/border_ui" />
    
86
Ben Neill

Manière la plus simple:

<ListView
    Android:id="@+id/listView1"
    Android:layout_width="match_parent"
    Android:layout_height="0dp"       
    Android:divider="#FFCC00"
    Android:dividerHeight="2dp"
    Android:layout_weight="1" />
12
Lo Juego

Il existe un moyen beaucoup plus simple de créer des bordures et d’autres détails graphiques dans les vues.

Vous devez utiliser 9 Patch images.Ils vous permettent de créer n’importe quel fond que vous aimez, y compris les bordures. Le lien explique tout. Pour vérifier, voici une image d'une liste délimitée .

Ici est une image de l'image du 9 patch que j'ai utilisé pour créer cette bordure.

1
Jack.Ramsden
Though its long time the question posted, but hope it may help new comer !!! 

Create **back.xml** under drawable folder of your project!!! 



   <?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android" Android:shape="rectangle" >
    <!-- use this for transparent -->
    <!-- <solid Android:color="#00000000" /> -->
    <!-- use this for a background colour -->
    <solid Android:color="#FFF" />
    <stroke Android:width="4dip" Android:color="#FFCC00" />
</shape>

Now set the same to your listview layout as background .

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
        Android:layout_width="fill_parent"
        Android:layout_height="fill_parent"
        Android:background="@color/colorWhite"
        Android:orientation="vertical">

        <TextView
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:text="Header"
            Android:textSize="40dp" />

        <ListView
            Android:id="@+id/list"
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:layout_marginTop="5dp"
            **Android:background="@drawable/back"** />
    </LinearLayout>

so it look like as following :

[![listview with background border][1]][1]

Here the border will around your total list view, not around each view. 


TO give **separate border of your listview** do the bellow thing :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent"
    Android:background="@color/colorWhite"
    Android:orientation="vertical">

    <TextView
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:text="Header"
        Android:textSize="40dp" />

    <ListView
        Android:id="@+id/list"
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:layout_marginTop="5dp"
        Android:background="@drawable/back"
        Android:divider="#FFCC00"
        Android:dividerHeight="2dp"/>
</LinearLayout>

and the UI will appear will comes like bellow: [![listview with background of each view][2]][2]


  [1]: https://i.stack.imgur.com/n2jGa.png
  [2]: https://i.stack.imgur.com/Btamf.png
1
Tarit Ray