web-dev-qa-db-ja.com

ListViewの周りにどのようにボーダーを配置しますか?

数ピクセル幅のリストビューの周りに境界線を配置したいと思います。リストビューの全体を巡回してほしい。これどうやってするの?ありがとう

43
Androider

このために、最初にLinearLayoutを取得し、その線形レイアウトに何らかの色を割り当て、その線形レイアウトでリストビューを取得します。をセットする Android:layout_margin="10dp"リストビューのプロパティ。つまり、4辺すべてに10dpのスペースが残ります。これはリストビューの境界線として表示されます。

17
Pinki

もう1つの方法は、再利用できる境界線リソースを作成することです。これは、実装するために余分なレイアウトを作成する必要がないことも意味します。

  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" />
    
87
Ben Neill

最も簡単な方法:

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

ビューに境界線やその他のグラフィックの詳細を作成するはるかに簡単な方法があります。

9 Patch imagesを使用する必要があります。ボーダーを含め、好きな背景を作成できます。リンクはすべてを説明します。ここで確認するには、 bordered list の画像を使用します。

ここ は、その境界線を作成するために使用した9つのパッチ画像の画像です。

1
Jack.Ramsden

その長い質問が投稿されましたが、それが新しい来訪者を助けるかもしれないことを願っています!!!

プロジェクトの描画可能フォルダーの下にback.xmlを作成してください!!!

   <?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>

次に、リストビューのレイアウトに同じものを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>

次のようになります:

listview with background border

ここで、境界線は各ビューではなく、リスト全体のビューを囲みます。

リストビューの別の境界線を指定するには以下を実行します。

<?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>

uIは以下のように表示されます。

listview with background of each view

1
Tarit Ray