Добавьте только верхнюю и нижнюю границу на LinearLayout

Я хотел бы добавить только нижнюю и верхнюю границу на Linearlayout. Я попытался сделать это:

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

Но он добавляет границу вокруг формы.

Не могли бы вы мне помочь?

Ответы

Ответ 1

Сделайте этот два файла и поместите этот код. вы можете установить границу верхней и нижней границы,

main.xml

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

border_set.xml

Этот файл находится в полном пути 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>

Ответ 2

Я думаю, что вы можете создать этот drawable и использовать его в качестве фона:

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

Подумайте, как сначала нарисовать прямоугольник с цветом границы, а затем наложить на него прямоугольник с цветом фона, оставляя 1dp сверху и снизу.

Ответ 3

Вот решение. Он работает даже с прозрачным фоном.

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

Ответ 4

Быстрый способ достичь этого:

  • Добавить текстовый вид в нижнюю часть и/или верхнюю часть вашего макета.
  • Установите ширину TextView в "match_parent"
  • Установите высоту TextView примерно на "1dp" или найдите нужную толщину.
  • Установите фон TextView в цвет, который вы хотите, чтобы граница была

Надеюсь, это поможет!

Ответ 5

Прост. Нарисуйте 3 фигуры, как это.

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

Ответ 7

Моя версия такова, что видна только верхняя и нижняя границы, а не границы слева и справа. И фон прозрачен.

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

Ответ 8

Я считаю, что это самый простой способ:

<View
    android:layout_width="match_parent"
    android:layout_height="2dp"
    android:background="#000000" />