首页 > 解决方案 > Android TextViews 重叠

问题描述

我有一个带有多个 TextView 的 RelativeLayout,这些 TextView 在某些情况下具有重叠的动态内容:重叠的 TextView

第一个例子是有问题的,另外两个是正确的。第一个的首选解决方案是日期的换行符。但我无法解决这个问题,同时将 3 个 TextView 的另外两个示例保持在 2 行。(由于文本是动态的,所有 3 个示例都必须具有相同的 Xml 源代码)

我制作了一个带有静态内容的示例 XML,以便在设计编辑器中对其进行测试:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="wrap_content"
          android:layout_height="match_parent"
          android:orientation="vertical">

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:paddingBottom="5dp"
                android:paddingLeft="10dp"
                android:paddingRight="10dp"
                android:paddingTop="7dp">

    <ImageView
        android:id="@+id/tl_team_image"
        android:layout_width="65dp"
        android:layout_height="70dp"
        android:scaleType="fitCenter"/>

    <TextView
        android:id="@+id/tl_team_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_toRightOf="@+id/tl_team_image"
        android:text="Lorem ipsum dolor sit amet consectetur"
        android:textSize="60sp"/>

    <TextView
        android:id="@+id/tl_location_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/tl_team_view"
        android:layout_marginLeft="10dp"
        android:layout_toRightOf="@+id/tl_team_image"
        android:text="Location Number 1"
        android:textSize="50sp"/>

    <TextView
        android:id="@+id/tl_place_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/tl_team_view"
        android:layout_marginLeft="10dp"
        android:layout_toRightOf="@+id/tl_location_view"
        android:gravity="right"
        android:text="Some Very Longplace"
        android:textSize="50sp"/>

    <TextView
        android:id="@+id/tl_date_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/tl_location_view"
        android:layout_marginLeft="10dp"
        android:layout_toRightOf="@+id/tl_team_image"
        android:paddingBottom="2dp"
        android:text="Tomorrow (August 31, 4 p.m.)"
        android:textSize="50sp"/>
</RelativeLayout>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:paddingBottom="5dp"
                android:paddingLeft="10dp"
                android:paddingRight="10dp"
                android:paddingTop="7dp">

    <ImageView
        android:id="@+id/tl_team_image2"
        android:layout_width="65dp"
        android:layout_height="70dp"
        android:scaleType="fitCenter"/>

    <TextView
        android:id="@+id/tl_team_view2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_toRightOf="@+id/tl_team_image2"
        android:text="Lorem ipsum dolor sit amet consectetur"
        android:textSize="60sp"/>

    <TextView
        android:id="@+id/tl_location_view2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/tl_team_view2"
        android:layout_marginLeft="10dp"
        android:layout_toRightOf="@+id/tl_team_image2"
        android:text="Location Number 1"
        android:textSize="50sp"/>

    <TextView
        android:id="@+id/tl_place_view2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/tl_team_view2"
        android:layout_marginLeft="10dp"
        android:layout_toRightOf="@+id/tl_location_view2"
        android:gravity="right"
        android:text="A Short Place"
        android:textSize="50sp"/>

    <TextView
        android:id="@+id/tl_date_view2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/tl_location_view2"
        android:layout_marginLeft="10dp"
        android:layout_toRightOf="@+id/tl_team_image2"
        android:paddingBottom="2dp"
        android:text="Tomorrow (August 31, 4 p.m.)"
        android:textSize="50sp"/>
</RelativeLayout>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:paddingBottom="5dp"
                android:paddingLeft="10dp"
                android:paddingRight="10dp"
                android:paddingTop="7dp">

    <ImageView
        android:id="@+id/tl_team_image3"
        android:layout_width="65dp"
        android:layout_height="70dp"
        android:scaleType="fitCenter"/>

    <TextView
        android:id="@+id/tl_team_view3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_toRightOf="@+id/tl_team_image3"
        android:text="Lorem ipsum dolor sit amet consectetur"
        android:textSize="60sp"/>

    <TextView
        android:id="@+id/tl_location_view3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/tl_team_view3"
        android:layout_marginLeft="10dp"
        android:layout_toRightOf="@+id/tl_team_image3"
        android:text="Location Number 1"
        android:textSize="50sp"/>

    <TextView
        android:id="@+id/tl_place_view3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/tl_team_view3"
        android:layout_marginLeft="10dp"
        android:layout_toRightOf="@+id/tl_location_view3"
        android:gravity="right"
        android:text="Some Very Longplace"
        android:textSize="50sp"/>

    <TextView
        android:id="@+id/tl_date_view3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/tl_location_view3"
        android:layout_marginLeft="10dp"
        android:layout_toRightOf="@+id/tl_team_image3"
        android:paddingBottom="2dp"
        android:text="September 21, 4 p.m."
        android:textSize="50sp"/>
</RelativeLayout>

标签: androidtextviewoverlap

解决方案


检查你的第三个 TextView. 它应该放在第二个 textview下面,而目前你把它放在第一个 textview下面,因此重叠,同样适用于你的第四个 textview

<ImageView
    android:id="@+id/tl_team_image"
    android:layout_width="65dp"
    android:layout_height="70dp"
    android:scaleType="fitCenter"/>

<TextView
    android:id="@+id/tl_team_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="10dp"
    android:layout_toRightOf="@+id/tl_team_image"
    android:text="Lorem ipsum dolor sit amet consectetur"
    android:textSize="60sp"/>

<TextView
    android:id="@+id/tl_location_view"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/tl_team_view"
    android:layout_marginLeft="10dp"
    android:layout_toRightOf="@+id/tl_team_image"
    android:text="Location Number 1"
    android:textSize="50sp"/>

<TextView
    android:id="@+id/tl_place_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/tl_location_view"
    android:layout_marginLeft="10dp"
    android:layout_toRightOf="@+id/tl_location_view"
    android:gravity="right"
    android:text="Some Very Longplace"
    android:textSize="50sp"/>

<TextView
    android:id="@+id/tl_date_view"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/tl_place_view"
    android:layout_marginLeft="10dp"
    android:layout_toRightOf="@+id/tl_team_image"
    android:paddingBottom="2dp"
    android:text="Tomorrow (August 31, 4 p.m.)"
    android:textSize="50sp"/>


推荐阅读