【问题标题】:Android TextViews overlapAndroid TextViews 重叠
【发布时间】:2018-08-31 11:20:19
【问题描述】:

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

第一个例子是有问题的,另外两个是正确的。第一个的首选解决方案是日期的换行符。但我无法解决这个问题,同时将 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>

【问题讨论】:

    标签: android textview overlap


    【解决方案1】:

    检查您的第三个TextView。它应该放在 second textview 下方,而目前您将它放在 first textview 下方,因此会重叠,同样适用于您的 4th 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"/>
    

    【讨论】:

    • 谢谢,但我确实希望将第三个 TextView(位置)放在其他 2 个 TextView 的右侧,这样我就有 3 个 TextView,总共只使用 2 行。仅在第一个示例中,它不适合并应自动使用 3 行。
    • 然后使用带权重的线性布局
    • LinearLayout 似乎只能使示例 2 或示例 3 起作用。另一个示例则需要 3 行。更不用说示例 1。
    猜你喜欢
    • 2015-10-15
    • 1970-01-01
    • 2015-10-10
    • 2021-12-24
    • 2012-06-25
    • 1970-01-01
    • 2011-03-22
    • 2011-12-08
    • 1970-01-01
    相关资源
    最近更新 更多