Как добавить нижнюю границу в relativelayout
<LinearLayout
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:orientation="vertical" android:background="@drawable/settings_border" android:padding="1dp"
android:layout_marginLeft="15dip" android:layout_marginRight="15dip" android:layout_marginTop="5dip">
<RelativeLayout android:id="@+id/map_refresh"
android:layout_height="fill_parent" android:layout_width="wrap_content"
android:background="@drawable/settings_selector_up"
android:padding="15dp">
<TextView android:id="@+id/Text1"
android:layout_height="wrap_content" android:layout_width="wrap_content"
android:text="Map refresh period">
</TextView>
<TextView android:id="@+id/TextView09"
android:layout_height="wrap_content" android:layout_width="wrap_content"
android:text="1 min"
android:layout_alignParentRight="true"
android:paddingRight="5dp">
</TextView>
</RelativeLayout>
<RelativeLayout android:id="@+id/own_location"
android:layout_height="fill_parent" android:layout_width="wrap_content"
android:padding="15dp"
android:background="@drawable/settings_selector_mid">
<TextView android:id="@+id/Text1"
android:layout_height="wrap_content" android:layout_width="wrap_content"
android:text="Own location update period">
</TextView>
<TextView android:id="@+id/TextView09"
android:layout_height="wrap_content" android:layout_width="wrap_content"
android:text="1 min"
android:layout_alignParentRight="true"
android:paddingRight="5dp">
</TextView>
</RelativeLayout>
Я хочу установить только нижнюю границу в relativelayout. Я хочу показать стиль списка, но не использовать listview. Допустим, что каждый список является релятивным. Я хочу установить только нижнюю границу, чтобы он выглядел как разделитель списка.
Ответы
Ответ 1
Надеюсь, я понял, что вы сказали.
в папке res создайте новую папку (если у вас ее еще нет) с именем drawable
создайте xml с именем "limits.xml"
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<gradient android:angle="90" android:centerColor="#6da23f" android:endColor="#8bc45d" android:startColor="#2f481c" />
<stroke android:width="2dp" android:color="#999999" />
<padding android:bottom="4dp" android:left="3dp" android:right="3dp" android:top="6dp" />
<corners android:radius="10px"/>
</shape>
</item>
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<gradient android:angle="90" android:centerColor="#6da23f" android:endColor="#8bc45d" android:startColor="#4c8a39" />
<stroke android:width="1dp" android:color="#FFFFFF" />
<padding android:bottom="4dp" android:left="3dp" android:right="3dp" android:top="6dp" />
<corners android:radius="10px"/>
</shape>
</item>
</selector>
Вы также можете редактировать его по своему усмотрению.
Затем выберите макет из контура и нажмите "Свойства фона" и выберите созданные вами границы xml.
Это создаст границы для всех 4. Кроме того, вы можете добавить простой
<View android:layout_width="1dip"
android:layout_height="fill_parent"
android:background="#FFFFFF" />
и добавьте его в нижней части макета и измените цвет/размер по своему вкусу.
Ответ 2
По какой-то причине другие решения не сработали для меня - все границы были показаны независимо от того, как я ее изменил. Это сработало:
<?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="@color/gray" />
<solid android:color="@color/gray" />
</shape>
</item>
<item android:bottom="1dp">
<shape
android:shape="rectangle">
<stroke android:width="1dp" android:color="@color/white" />
<solid android:color="@color/white" />
</shape>
</item>
</layer-list>
Цвет границы серый, а фон белый для контейнера (LinearLayout в моем примере). Вы можете просто изменить второй элемент, чтобы сделать границу более толстой или иметь границу сверху/слева/справа.
Вот как выглядит макет xml:
<LinearLayout
android:id="@+id/searchWrapper"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:background="@drawable/bottom_gray_border"
android:layout_alignParentTop="true">
<EditText
android:id="@+id/searchEditText"
style="@style/EditTextSearch"
android:hint="@string/find"
android:layout_marginLeft="5dp"/>
</LinearLayout>
У меня появилась идея отсюда: Есть ли простой способ добавить границу к верхней и нижней части Android-вида?
Ответ 3
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke
android:width="1dip"
android:color="#FF8000" />
<solid
android:color="#00FFFFFF"
android:paddingLeft="10dip"
android:paddingTop="10dip"/>
<corners android:radius="10px"/>
<padding
android:left="10dip"
android:top="10dip"
android:right="10dip"
android:bottom="10dip" />
</shape>
Вы можете сохранить это как borderframe.xml
в папке res/drawable (создать его, если он еще не существует), и ссылаться на него следующим образом: android:background="@drawable/borderframe"
.
Ответ 4
Простым способом отображения границы является создание горизонтального LinearLayout
и установка его цвета фона и высоты в соответствии с необходимой рамкой.