如何在相对布局 Android 中放置分隔线?
How to put Divider in Relative Layout Android?
这是我的代码:
<?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"
/>
那么如何在我的文本视图下方显示此分隔线?
将分隔线替换为
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#000000"
android:layout_alignBottom="@id/item_name" />
将分隔线替换为
<View
android:gravity="center"
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#000000"
android:layout_alignParentBottom="true"/>
试试这个
<?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>
尝试更改 TextView
高度。
改变这个:
android:layout_height="match_parent"
有了这个:
android:layout_height="wrap_content"
android:layout_weight="1"
我猜你的 textview 掩盖了你的分隔线。如果你使用 layout_weight="1"
,textview 填充布局的 'free' space,而 match_parent
填充父视图。
有关 MATCH_PARENT 的更多详细信息,请点击此处:http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html#MATCH_PARENT
<?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>
试试这个
<?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>
有问题的问题已经解决了一段时间了,
为了将来参考,线性布局允许我们按照指定在不同位置显示分隔线,例如:,-// 当分隔线位于项目之间时的情况。
<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"/>
这是我的代码:
<?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"
/>
那么如何在我的文本视图下方显示此分隔线?
将分隔线替换为
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#000000"
android:layout_alignBottom="@id/item_name" />
将分隔线替换为
<View
android:gravity="center"
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#000000"
android:layout_alignParentBottom="true"/>
试试这个
<?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>
尝试更改 TextView
高度。
改变这个:
android:layout_height="match_parent"
有了这个:
android:layout_height="wrap_content"
android:layout_weight="1"
我猜你的 textview 掩盖了你的分隔线。如果你使用 layout_weight="1"
,textview 填充布局的 'free' space,而 match_parent
填充父视图。
有关 MATCH_PARENT 的更多详细信息,请点击此处:http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html#MATCH_PARENT
<?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>
试试这个
<?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>
有问题的问题已经解决了一段时间了, 为了将来参考,线性布局允许我们按照指定在不同位置显示分隔线,例如:,-// 当分隔线位于项目之间时的情况。
<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"/>