【问题标题】:Textview2 is not showm when TextView1 have more than one line当 TextView 1 多于一行时,不显示 Textview 2
【发布时间】:2026-01-23 19:45:02
【问题描述】:

当 Textview1 多于一行时,我遇到了一些问题。

示例:textview1 有一行,textview2 显示。

但如果 textview1 多于一行,则 textview2 不会显示,因为 textview1 已满。

还有我的 .xml:

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

    <RelativeLayout
        android:layout_width="match_parent"
        android:padding="5dp"
        android:layout_height="match_parent">


        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_vertical"
            android:layout_marginTop="10dp">

            <ImageView
                android:layout_width="20dp"
                android:layout_height="20dp"
                android:id="@+id/img_vote"
                android:src="@drawable/vote_t_1"/>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="xxxxxxdfkldjsklfjsdxxxxxx"
                android:id="@+id/tx_poll"
                android:layout_marginLeft="10dp"
                android:layout_toRightOf="@+id/img_vote"/>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="ttt"
                android:id="@+id/tx_count_vote"
                android:gravity="center"
                android:textColor="@color/color_white"
                android:textSize="@dimen/tx_size_smally"
                android:paddingLeft="5dp"
                android:paddingRight="5dp"
                android:background="@drawable/bg_count_poll"
                android:layout_marginLeft="10dp"
                android:layout_toRightOf="@+id/tx_poll"/>

        </RelativeLayout>
    </RelativeLayout>

</RelativeLayout>

如何解决?

【问题讨论】:

  • 在你的文本视图上使用椭圆尺寸
  • 您在这里使用相对布局有什么特别的原因吗?在这种情况下,我通常更喜欢使用线性布局..
  • 您可以将table-rowlinearLayout 与权重属性一起使用。
  • @SRBbans 怎么用,请给我举例
  • @ARR.s 看到答案。

标签: android xml textview


【解决方案1】:

如果文本视图并排放置,则始终建议对两个文本视图使用权重 = 1 的线性布局。

试试这个:

<LinearLayout

    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"   
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/textViewprimary"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center"
        android:text="abcd" />

<TextView
        android:id="@+id/textViewSecondary"
        android:layout_width="0dp"           
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center"
        android:text="efgh" />
</LinearLayout>

【讨论】:

  • 谢谢!如果两个 textviews 的 chage weight = 1,则不起作用,但仅将 android:layout_weight="1" 更改为 textview1 即可!
  • 是的,这就是我的意思,我只是粗略地说了重量。为了说明我的意思,我粘贴了“android:layout_weight”的代码。我很高兴它有帮助:-)
【解决方案2】:

将你的文本视图包装成表格。

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

    <RelativeLayout
        android:layout_width="match_parent"
        android:padding="5dp"
        android:layout_height="match_parent">


        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_vertical"
            android:layout_marginTop="10dp">

            <ImageView
                android:layout_width="20dp"
                android:layout_height="20dp"
                android:id="@+id/img_vote"
                android:src="@drawable/vote_t_1"/>

            <TableRow
            android:weightSum="1"
            android:layout_marginLeft="10dp"
            android:layout_toRightOf="@+id/img_vote"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >

            <TextView
                android:layout_weight=".60" // here manage the weight/percentage
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:text="xxxxxxdfkldjsklfjsdxxxxxx"
                android:id="@+id/tx_poll"/>

            <TextView
                android:layout_weight=".40"// here manage the weight/percentage
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:text="ttt"
                android:id="@+id/tx_count_vote"
                android:gravity="center"
                android:textColor="@color/color_white"
                android:textSize="@dimen/tx_size_smally"
                android:background="@drawable/bg_count_poll"
                android:gravity="center"
                android:paddingLeft="5dp"
                android:paddingRight="5dp"/>

            </TableRow> 


        </RelativeLayout>
    </RelativeLayout>

</RelativeLayout>

【讨论】:

  • 谢谢,但如果有时 textview 有一行,这对我来说设置 textview 是个问题(我想在 textview1 之后设置 textview2)
  • 它总是在textview 1的右边。
  • 嗯,但我想 textview2 在 textview1 中的最后一个文本之后
【解决方案3】:

这样做

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout
    android:layout_width="match_parent"
    android:padding="5dp"
    android:layout_height="match_parent">


    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_vertical"
        android:layout_marginTop="10dp"
        >

        <ImageView
            android:layout_width="20dp"
            android:layout_height="20dp"
            android:id="@+id/img_vote"
            android:src="@drawable/vote_t_1"/>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_toRightOf="@+id/img_vote"
            android:weightSum="2">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="xxxxxxdfkldjsklfjsdxxxxxx"
            android:id="@+id/tx_poll"
            android:layout_marginLeft="10dp"
            android:layout_weight="1"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="ttt"
            android:id="@+id/tx_count_vote"
            android:textColor="@color/color_white"
            android:textSize="@dimen/tx_size_smally"
            android:paddingLeft="5dp"
            android:paddingRight="5dp"
            android:background="@drawable/bg_count_poll"
            android:layout_marginLeft="10dp"
            android:layout_weight="1"/>

        </LinearLayout>
    </RelativeLayout>
</RelativeLayout>

【讨论】:

    【解决方案4】:

    那是因为你的 android:id="@+id/tx_poll" 上有 android:layout_height="wrap_content"。当有很多文字时,它会移动你的 android:id="@+id/tx_count_vote",它变得不可见。

    您有以下选择:

    1. tx_poll TextView 添加固定大小。比如:android:layout_width="90dp"

    2. 将 LinearLayout 与 layout_weight 一起使用

    3. 使用PercentRelativeLayout

    【讨论】:

      【解决方案5】:

      在 tx_poll 中设置属性 android:layout_toLeftOf="@+id/tx_count_vote" 也可以设置 textView 的 maxLength 以防止重叠和固定 tx_poll textView 的区域

      【讨论】:

        最近更新 更多