上面的文本视图覆盖它下面的文本视图

时间:2016-03-10 04:51:42

标签: android android-layout textview

我在列表项中有一个textView,下面有另一个文本视图。 我一次又一次地面对一个问题,即文本增加时。上面的文本视图会覆盖下面的文本视图,或者下面的文本视图会显示在上面的文本视图之上。

RelativeLayout中的我的XML是:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/tp_activity_wise_badge_fragment_each_item"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/tp_White"
    android:minHeight="60dp">        
<TextView
        android:id="@+id/textview1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_centerVertical="true"
        android:layout_marginLeft="23dp"
        android:layout_marginStart="23dp"
        android:text="Loading Title..."
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:textColor="#737574"
        android:textSize="15dp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/textview3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/textview1"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_alignTop="@+id/textview1"
        android:layout_centerVertical="true"
        android:layout_marginEnd="23dp"
        android:layout_marginRight="23dp"
        android:background="@color/tp_White"
        android:gravity="center_vertical|center_horizontal"
        android:maxLines="2"
        android:text="Loading..."
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="#737574"
        android:textSize="15dp" />

    <TextView
        android:id="@+id/textview2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Loading Subtitle..."
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:textColor="@color/tp_inactive_channel_text_color"
        android:textSize="11dp"
        android:layout_below="@+id/textview1"
        android:layout_alignLeft="@+id/textview1"
        android:layout_alignStart="@+id/textview1" />

我知道这是一个非常基本的问题,但这对我来说是非常不确定的,我无法定位这些观点,以至于他们不会互相切割。 任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:1)

您需要在代码中使用layout_alignParentRight

设置边距以设置视图

的方式不正确
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/tp_activity_wise_badge_fragment_each_item"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/tp_White"
    android:minHeight="60dp">        
<TextView
        android:id="@+id/textview1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:text="Loading Title..."
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:textColor="#737574"
        android:textSize="15dp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/textview3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/textView1"

        android:layout_alignParentRight="true"
        android:gravity="right"

        android:background="@color/tp_White"

        android:maxLines="2"
        android:text="Loading..."

        android:textColor="#737574"
        android:textSize="15dp" />

    <TextView
        android:id="@+id/textview2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Loading Subtitle..."

        android:textSize="11dp"
        android:layout_below="@id/textview1"
         />

答案 1 :(得分:1)

您应该使用LinearLayout(只需复制并粘贴)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/tp_activity_wise_badge_fragment_each_item"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:layout_margin="25dp"
    >

    <LinearLayout
        android:layout_width="match_parent"
        android:orientation="horizontal"
        android:layout_marginBottom="10dp"
        android:layout_height="wrap_content">
    <TextView
        android:id="@+id/textview1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Loading Title..."
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:textColor="#737574"
        android:textSize="15dp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/textview3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="right"
        android:text="Loading..."
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="#737574"
        android:textSize="15dp" />

    </LinearLayout>

    <TextView
        android:id="@+id/textview2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Loading Subtitle..."
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:textSize="11dp"
        />

</LinearLayout>

答案 2 :(得分:1)

您希望通过撰写android:layout_alignTop="@+id/textview1"并同时android:layout_alignBottom="@+id/textview1"来实现目标。

相反,您可以尝试android:layout_below="@+id/textview1"这会使您的textview垂直对齐。