我在相对布局的顶部和底部之间使用两条水平视图线(id是view2和view 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="match_parent" >
<RelativeLayout
android:id="@+id/delivery_address"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/address_layout"
android:layout_margin="10dp"
android:orientation="horizontal" >
<TextView
android:id="@+id/delivery_phone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/delivery_country"
android:layout_marginLeft="7dp"
bold=""
android:paddingLeft="6dp"
android:paddingTop="5dp"
android:text="Phone: 12345678
android:textStyle=" />
</RelativeLayout>
<View
android:id="@+id/view2"
android:layout_width="wrap_content"
android:layout_height="1dp"
android:layout_below="@+id/delivery_address"
android:layout_centerVertical="true"
android:background="#cfcfcf" />
<RelativeLayout
android:id="@+id/delivery_edit_delete_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/view2"
android:layout_margin="8dp"
android:orientation="horizontal" >
<TextView
android:id="@+id/delivery_edit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginLeft="7dp"
android:drawableLeft="@drawable/delivery_edit"
android:drawablePadding="5dp"
android:paddingLeft="20dp"
android:text="Edit"
android:textColor="#555555" />
<TextView
android:id="@+id/delivery_delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="7dp"
android:layout_toLeftOf="@+id/delivery_edit"
android:drawableLeft="@drawable/delivery_delete"
android:drawablePadding="5dp"
android:paddingRight="20dp"
android:text="Delete"
android:textColor="#555555" />
</RelativeLayout>
<View
android:id="@+id/view3"
android:layout_width="wrap_content"
android:layout_height="1dp"
android:layout_below="@+id/delivery_edit_delete_layout"
android:layout_centerVertical="true"
android:background="#cfcfcf" />
预期产出:
My output is:
答案 0 :(得分: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="match_parent" >
<RelativeLayout
android:id="@+id/delivery_address"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/address_layout"
android:layout_margin="10dp"
android:orientation="horizontal" >
<TextView
android:id="@+id/delivery_phone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/delivery_country"
android:layout_marginLeft="7dp"
android:paddingLeft="6dp"
android:paddingTop="5dp"
android:text="Phone: 12345678
android:textStyle="bold" />
</RelativeLayout>
<View
android:id="@+id/view2"
android:layout_width="wrap_content"
android:layout_height="1dp"
android:layout_below="@+id/delivery_address"
android:layout_centerVertical="true"
android:background="#cfcfcf" />
<RelativeLayout
android:id="@+id/delivery_edit_delete_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/view2"
android:orientation="horizontal" >
<LinearLayout
android:id="container_for_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<TextView
android:id="@+id/delivery_edit"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_gravity="center" (Or try android:gravity)
android:layout_marginLeft="7dp"
android:drawableLeft="@drawable/delivery_edit"
android:drawablePadding="5dp"
android:paddingLeft="20dp"
android:text="Edit"
android:textColor="#555555" />
<View
android:id="@+id/innerLine"
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="#cfcfcf" />
<TextView
android:id="@+id/delivery_delete"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_gravity="center" (Or try android:gravity)
android:layout_marginRight="7dp"
android:layout_toLeftOf="@+id/delivery_edit"
android:drawableLeft="@drawable/delivery_delete"
android:drawablePadding="5dp"
android:paddingRight="20dp"
android:text="Delete"
android:textColor="#555555" />
</LinearLayout>
</RelativeLayout>
<View
android:id="@+id/view3"
android:layout_width="wrap_content"
android:layout_height="1dp"
android:layout_below="@+id/delivery_edit_delete_layout"
android:layout_centerVertical="true"
android:background="#cfcfcf" />
</RelativeLayout>
尝试使用LinearLayout,因为它会将它放在两者的中间。希望这段代码能有所帮助!我还没有尝试过,所以你必须为我测试一下!
编辑:更新以使它们居中(如果layout_gravity / gravity都失败,请尝试在LinearLayout中使用android:gravity)。
答案 1 :(得分:0)
您可以在textview周围绘制边框。您可以通过在drawables文件夹中创建边框样式,然后将textview背景设置为指向此样式来执行此操作:
//your textview
<TextView android:text="Hi there" android:background="@drawable/my_border/>
然后您的边框为drawable / my_border:
//you can set the border colors, width, and which sides should have borders.
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<solid android:color="#ffffff" />
<stroke android:width="1dip" android:color="#e2e2e2"/>
</shape>
如果你只想在一个/特定的边上有边框,你可以这样做:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
//this is your textview main background
<shape android:shape="rectangle">
<solid android:color="#ffffff" />
</shape>
</item>
//this will then draw only left border with specified colour and width
<item android:left="1dp">
<shape android:shape="rectangle">
<solid android:color="#e1e1e1" />
</shape>
</item>
答案 2 :(得分:0)
您的代码甚至没有RelativeLayout
中间的视图,因此请在视图delivery_edit_delete_layout
后面的相对布局delivery_edit
中放置以下视图:
<View
android:id="@+id/view_separator"
android:layout_width="1dp"
android:layout_height="30dp"
android:layout_centerInParent="true"
android:layout_centerVertical="true"
android:background="#cfcfcf" />
但请记住,您必须为此提供固定的高度,此处我指定了30dp
,或者至少为RelativeLayout
提供了固定的高度,并为此分隔符视图指定match_parent
高度。
答案 3 :(得分:0)
看看你想要达到的目标,最好使用重量和线性布局 这将确保您的垂直分隔线正好位于水平布局的中间 Here是一篇非常好的文章,解释了线性布局权重的使用。
您可以参考此代码,了解如何根据您的要求使用它。
<LinearLayout
android:id="@+id/delivery_edit_delete_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/view2"
android:layout_margin="8dp"
android:orientation="horizontal" >
<TextView
android:id="@+id/delivery_edit"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/delivery_edit"
android:gravity="center"
android:layout_weight="1"
android:text="Edit"
android:textColor="#555555" />
<View
android:id="@+id/verticalLine"
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="#cfcfcf" >
</View>
<TextView
android:id="@+id/delivery_delete"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/delivery_delete"
android:gravity="center"
android:text="Delete"
android:textColor="#555555" />
</LinearLayout>
答案 4 :(得分:0)
试试这个
<LinearLayout
android:id="@+id/delivery_edit_delete_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/view2"
android:orientation="horizontal" >
<TextView
android:id="@+id/delivery_edit"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="7dp"
android:layout_weight="1"
android:background="@drawable/divider"
android:drawableLeft="@drawable/delivery_edit"
android:drawablePadding="5dp"
android:gravity="center"
android:paddingLeft="20dp"
android:text="Edit"
android:textColor="#555555" />
<TextView
android:id="@+id/delivery_delete"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginRight="7dp"
android:layout_weight="1"
android:drawableLeft="@drawable/delivery_delete"
android:drawablePadding="5dp"
android:gravity="center"
android:paddingRight="20dp"
android:text="Delete"
android:textColor="#555555" />
</LinearLayout>
ur drawables中的divider.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:bottom="-2dp"
android:left="-2dp"
android:right="1dp"
android:top="-2dp">
<shape android:shape="rectangle" >
<stroke
android:width="1dp"
android:color="#cfcfcf" />
<solid android:color="@android:color/transparent" />
<padding
android:bottom="10dp"
android:left="10dp"
android:right="10dp"
android:top="10dp" />
</shape>
</item>
</layer-list>
希望它适用于你...
答案 5 :(得分:0)
只需将此代码放在文本视图之间的行分隔符中。
<View
android:layout_width="wrap_content"
android:layout_height="1dp"
android:background="#979797"/>