如何根据相对布局,Android中的元素总高度使垂直线可扩展?

时间:2017-09-25 06:09:11

标签: android android-layout

我有一个如下所示的相对布局,当我将RelativeLayout高度硬编码为25dp时,它没有问题,它显示如下图所示。

enter image description here

我想要的是,当TextView变为多行但不是硬编码高度时,红色水平线可以自动扩展高度。

这是我的代码

   <RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <View
        android:id="@+id/line"
        android:layout_width="3dp"
        android:layout_height="match_parent"
        android:background="@color/blue" />

    <TextView
        android:id="@+id/TextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_marginLeft="4dp"
        android:layout_marginStart="4dp"
        android:layout_toEndOf="@+id/line"
        android:layout_toRightOf="@+id/line"
        android:text="TextView"
        android:textColor="@color/black"
        android:textSize="14sp" />
</RelativeLayout>

当我将RelativeLayout高度更改为wrap_content时,垂直线将变为不可见。

所以我的问题是,如何制作一个垂直line哪个高度可以展开,取决于TextView的高度?

2 个答案:

答案 0 :(得分:2)

您可以使用水平线性布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <View
        android:id="@+id/line"
        android:layout_width="13dp"
        android:layout_height="match_parent"
        android:background="@color/md_blue_900" />

    <TextView
        android:id="@+id/TextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginLeft="4dp"
        android:layout_marginStart="4dp"
        android:text="TextView"
        android:textColor="@color/md_black_1000"
        android:textSize="14sp" />
</LinearLayout>

答案 1 :(得分:0)

以下代码为我工作

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center">
    <View
        android:id="@+id/line"
        android:layout_width="3dp"
        android:layout_height="match_parent"
        android:background="#cd2121" />

    <TextView
        android:id="@+id/TextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginLeft="4dp"
        android:layout_marginStart="4dp"
        android:text="TextView \n tegdienaifa \n nfuyeuayeyae \n tefgaeyigufYK"
        android:textSize="14sp" />
</LinearLayout>