如何在相对布局中添加分隔线(Android)?

3

这是我的代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="48dp"
android:background="?android:attr/selectableItemBackground" >


<ImageView
    android:id="@+id/item_icon"
    android:layout_width="30dp"
    android:layout_height="20dp"
    android:layout_centerVertical="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginLeft="12dp"
    android:layout_marginStart="12dp" />

<TextView
    android:id="@+id/item_name"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:minHeight="?android:attr/listPreferredItemHeightSmall"
    android:textAppearance="?android:attr/textAppearanceListItemSmall"
    android:gravity="center_vertical"
    android:paddingRight="20dp"
    android:paddingEnd="10dp"
    android:text="Test"
    android:layout_alignParentTop="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true" />




</RelativeLayout>

我尝试将这部分代码放在我的RelativeLayout末尾,但它没有显示分隔线。
这是我的分隔线代码:
<View
    android:gravity="center"
    android:layout_width="fill_parent"
    android:layout_height="1dp"
    android:background="#000000"
    android:layout_below="@id/item_name"
   />

那么我该如何在我的文本视图下方显示这个分隔线呢?

你需要把分隔符放在哪里? - Jignesh Jain
在文本视图之后的相对布局结束处,显示文本视图底部的分隔线。 - Johnny Walker
为什么要使用相对布局RelativeLayout?LinearLayout可以同时使用水平和垂直方向。 - Amitsharma
在这里,您可以使用空间边距左、右、上、下等功能,这样可以轻松管理。 - Amitsharma
7个回答

4
    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="48dp"
    android:background="?android:attr/selectableItemBackground" >


    <ImageView
        android:id="@+id/item_icon"
        android:layout_width="30dp"
        android:layout_height="20dp"
        android:layout_centerVertical="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginLeft="12dp"
        android:layout_marginStart="12dp"
        android:src="@drawable/ic_launcher"/>

    <TextView
        android:id="@+id/item_name"
        android:textColor="@color/list_item_title"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:minHeight="?android:attr/listPreferredItemHeightSmall"
        android:textAppearance="?android:attr/textAppearanceListItemSmall"
        android:gravity="center_vertical"
        android:paddingRight="20dp"
        android:paddingEnd="10dp"
        android:text="Test"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />
    <View
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:background="@android:color/darker_gray"
        android:layout_alignBottom="@id/item_name" />



</RelativeLayout>

0

将您的除数替换为

<View
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:background="#000000"
    android:layout_alignBottom="@id/item_name" />

0

将您的分隔符替换为

<View
android:gravity="center"
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#000000"
android:layout_alignParentBottom="true"/>

0

试试这个

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="48dp"
    android:background="?android:attr/selectableItemBackground" >

    <ImageView
        android:id="@+id/item_icon"
        android:layout_width="30dp"
        android:layout_height="20dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_centerVertical="true"
        android:layout_marginLeft="12dp"
        android:layout_marginStart="12dp" />

    <TextView
        android:id="@+id/item_name"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:gravity="center_vertical"
        android:minHeight="?android:attr/listPreferredItemHeightSmall"
        android:paddingEnd="10dp"
        android:paddingRight="20dp"
        android:text="Test"
        android:textAppearance="?android:attr/textAppearanceListItemSmall" />

    <View
        android:layout_width="fill_parent"
        android:layout_height="1dp"
        android:layout_alignBottom="@id/item_name"
        android:background="#000000" />

</RelativeLayout>

0
尝试更改TextView的高度。

更改为:

android:layout_height="match_parent"

使用这个:

android:layout_height="wrap_content"
android:layout_weight="1"

我猜你的TextView覆盖了你的分隔线。如果你使用layout_weight="1",TextView将填充布局中的“空闲”空间,而match_parent则填充父视图。

有关MATCH_PARENT的更多详细信息,请参见此处:http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html#MATCH_PARENT


layout_weight不能在相对布局中使用。 - Nolan

0

试试这个

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?android:attr/selectableItemBackground" >

    <ImageView
        android:id="@+id/item_icon"
        android:layout_width="30dp"
        android:layout_height="20dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_centerVertical="true"
        android:layout_marginLeft="12dp"
        android:layout_marginStart="12dp" />

    <TextView
        android:id="@+id/item_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:gravity="center_vertical"
        android:minHeight="?android:attr/listPreferredItemHeightSmall"
        android:paddingEnd="10dp"
        android:paddingRight="20dp"
        android:text="Test"
     android:textAppearance="?android:attr/textAppearanceListItemSmall"     />

    <View
        android:layout_width="fill_parent"
        android:layout_height="1dp"
        android:layout_below="@id/item_name"
        android:background="#000000"
        android:gravity="center" />
</RelativeLayout>

刚刚将RelativeLayout和TextView的layout_height属性改为"wrap_content"。 - Mideesh Punathil

0
问题已经解决了,因为一段时间过去了,供以后参考,线性布局允许我们按照指定的位置显示分隔符,例如:-// 在项目之间有分隔符的情况。
<LinearLayout
    android:layout_width="match_parent"
    android:orientation="vertical"
    android:padding="16dp"
    android:showDividers="middle" 
    android:divider="?android:listDivider"
    android:layout_height="match_parent">

而在相对布局的情况下,我们需要像其他答案中指定的那样使用视图。

 <View
    android:layout_width="match_parent"
    android:background="?android:listDivider"
    android:layout_height="1dp"/>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接