你如何在ListView周围放置边框?

时间:2011-02-21 12:07:24

标签: android listview layout

我想在listview周围放一个边框,这个边框有几个像素宽。我想要它来浏览整个listview文章。我怎样才能做到这一点?感谢

6 个答案:

答案 0 :(得分:87)

另一种方法是创建一个可以重复使用的边框资源,这也意味着你不需要创建额外的布局来实现它。

  1. 创建可绘制资源

    <?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. 然后将其设置为列表视图背景

    <ListView
        android:id="@id/android:list"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/border_ui" />
    

答案 1 :(得分:17)

首先采用LinearLayout并使用某种颜色分配该线性布局,并在该线性布局中获取列表视图。为列表视图设置android:layout_margin="10dp"属性。这意味着在所有4个方面将留下10dp的空间。这显示为列表视图的边框。

答案 2 :(得分:13)

最简单的方法:

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

答案 3 :(得分:1)

在视图上创建边框和其他图形细节有一种更简单的方法。

你应该使用9 Patch张图片。它们可以让你创建任何你喜欢的背景,包括边框。该链接解释了所有。要验证此处是bordered list的图像。

Here是我用来制作边框的9张补丁图片的图片。

答案 4 :(得分:1)

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

答案 5 :(得分:-8)

您也可以像

那样做边框
<ListView
    android:id="@id/android:list"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="5dp"
    android:background="@drawable/border_ui" />