Подтвердить что ты не робот

Как вы помещаете границу вокруг ListView?

Я хотел бы разместить рамку вокруг моего списка, имеющую ширину в несколько пикселей. Я хочу, чтобы он обошел весь кусок списка. Как я могу это сделать? спасибо

4b9b3361

Ответ 1

Для этого сначала возьмите LinearLayout и назначьте этот линейный макет каким-то цветом и возьмите представление списка в этом линейном макете. Задайте свойство android:layout_margin="10dp" для просмотра списка. Это означает, что на всех 4 сторонах останется 10dp-пространство. Это показано как граница вида списка.

Ответ 2

Другой способ сделать это - создать пограничный ресурс, который затем может быть повторно использован, а также означает, что вам не нужно создавать дополнительный макет для его реализации.

  • создать ресурс с ресурсом

    <?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>
    
  • затем установите его как фон списка

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

Ответ 3

Простейший способ:

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

Ответ 4

Существует гораздо более простой способ создания границ и других графических деталей на представлениях.

Вы должны использовать 9 патчей. Они позволяют вам создавать любой фон, который вам нравится, включая границы. Ссылка объясняет все. Чтобы проверить здесь, это изображение ограниченного списка.

Здесь - изображение 9 патча, которое я использовал для создания этой границы.

Ответ 5

Хотя это давно вопрос опубликован, но надеюсь, что это может помочь новичку !!!

Создайте back.xml в папке drawable вашего проекта !!!

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

Теперь установите тот же макет списка, что и в качестве фона.

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

и пользовательский интерфейс появится как показано ниже:

listview with background of each view

Ответ 6

вы также можете сделать границу как

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