0

我有RelativeLayout,在其中我将TextView 放置在与父权对齐的按钮的左侧。因此,当要在 TextView 中显示的文本增加超过 wrap_Content 时,它会在 Button 上重叠。所以,我需要一个解决方案来在下一行显示超出的文本。谁能帮我解决这个问题?
在下面的布局中,如果 TextView2 的文本是“11111111111111111111111”,它将与 TextView1 重叠。如何预防?
我的布局如下:

    <ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_centerVertical="true"
    android:layout_margin="10dp"
    android:scaleType="fitXY"
    android:src="@drawable/icon" >
    </ImageView>

     <TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
      android:layout_height="wrap_content"
    android:layout_alignTop="@+id/imageView1"
    android:layout_margin="5dp"
    android:text="TextView"
    android:textSize="22dp" 
    android:layout_toRightOf="@id/imageView1"
    >
        </TextView>

 <Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:focusable="false"
    android:text="Button" 
    android:layout_alignTop="@+id/imageView1"

    >
</Button> 

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toLeftOf="@id/button1"
    android:text="TextView222"
    android:textSize="22dp"
    android:layout_margin="5dp"
    android:layout_alignTop="@+id/imageView1"
    android:ellipsize="end"
    >
</TextView>


在上述布局中,如果 TextView2 的 Text 为“11111111111111111111111”,它将与 TextView1 重叠。如何防止

4

2 回答 2

2

只需添加android:layout_toLeftOf="@+id/button"到您的 TextView 以防止它与您的 Button 发生冲突。

它看起来像这样:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@+id/button"
        android:text="11111111111111111111111111111111111111111111111111111111111111111111111111111111111"/>

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:text="Potatoe"/>

</RelativeLayout>

你已经改变了问题......但我也会回答这个新问题。您可能正试图将太多东西挤进一排。但是,让我们将您的布局更改为水平 LinearLayout 并使用几个layout_weight属性:

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

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:scaleType="fitXY"
        android:src="@drawable/ic_launcher"/>

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="5dp"
        android:layout_weight="1"
        android:text="111111111111111111111111111111111"
        android:textSize="22dp"/>

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="5dp"
        android:layout_weight="1"
        android:ellipsize="end"
        android:text="222222222222222222222222222222222"
        android:textSize="22dp"/>

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:focusable="false"
        android:text="Button"/>

</LinearLayout>

注意:textView2不会换行,因为您使用了该ellipse属性。祝你好运!

于 2012-09-06T19:53:12.623 回答
0

基于@Sam 解决方案,我添加android:layoutDirection="rtl"了想要的结果

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layoutDirection="rtl">

                    <TextView
                        android:id="@+id/text"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_toLeftOf="@+id/button"
                        android:text="1111111111111111111111111111111111111"/>

                    <Button
                        android:id="@+id/button"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentRight="true"
                        android:text="Potatoe"/>

                </RelativeLayout>
于 2020-08-03T17:57:39.180 回答