【问题标题】:Android Textview not showing multiple lines within a listAndroid Textview没有在列表中显示多行
【发布时间】:2026-01-01 14:20:03
【问题描述】:

可能这是一个重复的问题,但我再次问这个问题,因为解决方案 here 对我不起作用。我有一个列表视图,在列表视图中我有 2 个图像视图和一个文本视图。参考图片下面:

如您所见,我无法将 textviews 拆分为 2 行,因此我的 textview 与 imageview 的重叠。这是我的代码:

uplodefilelist.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/rl_filelist"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:paddingBottom="20dp"
    android:paddingTop="20dp" >

    <ImageView
        android:id="@+id/fileimage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_marginLeft="10dp"
        android:src="@drawable/default_avatar" />

    <RelativeLayout
        android:id="@+id/ll_cntactcont"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_marginLeft="5dp"
        android:layout_marginTop="10dp"
        android:layout_toRightOf="@+id/fileimage" >

        <TextView
            android:id="@+id/tvfilename"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:text="Srina Banerjee"
            android:textColor="#000000"
            android:textStyle="bold"
            android:ellipsize="end"
            android:maxLines="2"
            android:singleLine="false"
           />

        <ImageView
            android:id="@+id/btnSettings"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:src="@drawable/settings"
            android:textColor="#000000"
            android:focusable="false"
            android:focusableInTouchMode="false" />
    </RelativeLayout>

</RelativeLayout>

我无法在 setText() 方法中使用任何 html 格式,或者我无法从 java 文件中执行任何操作。我只能在 xml 文件中执行此操作。我咨询了我们自己的堆栈溢出并在我的文本视图中添加了这一行。

android:ellipsize="end"
android:maxLines="2"
android:singleLine="false"

但是正如你所看到的那样,它们都没有工作。帮助。

【问题讨论】:

  • 对你的 textview 使用 android:margin_fromRight 并设置一个边距,这样它就不会与 imageview 重叠
  • 感谢大家的回复。 android:layout_toLeftOf="@+id/btnSettings" 正在工作。干杯

标签: android android-listview textview multiline


【解决方案1】:

只需在 Textview 中添加 1 个标签

 android:layout_toLeftOf="@+id/btnSettings"

所以这个旧的是

 <TextView
     android:id="@+id/tvfilename"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_alignParentLeft="true"
     android:layout_centerVertical="true"
     android:text="Srina Banerjee"
     android:textColor="#000000"
     android:textStyle="bold"
     android:ellipsize="end"
     android:maxLines="2"
     android:singleLine="false"/>

改为:

 <TextView
     android:id="@+id/tvfilename"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_alignParentLeft="true"
     android:layout_centerVertical="true"
     android:text="Srina Banerjee"
     android:textColor="#000000"
     android:layout_toLeftOf="@+id/btnSettings"
     android:textStyle="bold"
     android:ellipsize="end"
     android:maxLines="2"
     android:singleLine="false"/>

【讨论】:

    【解决方案2】:

    试试这个方法,希望能帮助你解决问题。

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="10dp"
        android:gravity="center">
    
        <ImageView
            android:id="@+id/fileimage"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_launcher"
            android:adjustViewBounds="true"/>
    
        <LinearLayout
            android:id="@+id/ll_cntactcont"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp">
            <TextView
                android:id="@+id/tvfilename"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Srina Banerjee"
                android:textColor="#000000"
                android:textStyle="bold"
                android:ellipsize="end"
                android:maxLines="2"/>
        </LinearLayout>
    
        <ImageView
            android:id="@+id/btnSettings"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_launcher"
            android:textColor="#000000"
            android:focusable="false"
            android:focusableInTouchMode="false"
            android:layout_marginLeft="5dp"/>
    
    </LinearLayout>
    

    【讨论】:

      【解决方案3】:

      在你的文本视图中添加android:layout_toLeftOf="@+id/btnSettings"

      <TextView
                  android:id="@+id/tvfilename"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:layout_alignParentLeft="true"
                  android:layout_centerVertical="true"
                  android:text="Srina Banerjee"
                  android:textColor="#000000"
                  android:textStyle="bold"
                  android:ellipsize="end"
                  android:maxLines="2"
                  android:singleLine="false"
                  android:layout_toLeftOf="@+id/btnSettings"
                 />
      

      别忘了清除项目。

      【讨论】:

        【解决方案4】:

        textview 中添加android:layout_toLeftOf="@+id/btnSettings" 并删除其父relative layout 试试这个布局

        <?xml version="1.0" encoding="utf-8"?>
        <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/rl_filelist"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="5dp"
            android:paddingBottom="20dp"
            android:paddingTop="20dp" >
        
            <ImageView
                android:id="@+id/fileimage"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_marginLeft="10dp"
                android:src="@drawable/default_avatar" />
        
            <TextView
                android:id="@+id/tvfilename"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="5dp"
                android:layout_toLeftOf="@+id/btnSettings"
                android:layout_toRightOf="@+id/fileimage"
                android:ellipsize="end"
                android:maxLines="2"
                android:singleLine="false"
                android:text="Srina Banerjee"
                android:textColor="#000000"
                android:textStyle="bold" />
        
            <ImageView
                android:id="@+id/btnSettings"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_centerVertical="true"
                android:focusable="false"
                android:focusableInTouchMode="false"
                android:src="@drawable/settings"
                android:textColor="#000000" />
        
        </RelativeLayout>
        

        【讨论】:

          【解决方案5】:

          您只需在TextView 中添加一行

          android:layout_toLeftOf="@+id/btnSettings" 
          

          试试这个代码...

          <ImageView
              android:id="@+id/fileimage"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_alignParentLeft="true"
              android:layout_marginLeft="10dp"
              android:src="@drawable/default_avatar" />
          
          <RelativeLayout
              android:id="@+id/ll_cntactcont"
              android:layout_width="fill_parent"
              android:layout_height="wrap_content"
              android:layout_centerVertical="true"
              android:layout_marginLeft="5dp"
              android:layout_marginTop="10dp"
              android:layout_toRightOf="@+id/fileimage" >
          
              <TextView
                  android:id="@+id/tvfilename"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:layout_alignParentLeft="true"
                  android:layout_centerVertical="true"
                  android:text="Srina Banerjee "
                  android:layout_toLeftOf="@+id/btnSettings" <!-- use this for setting  textview properly -->
                  android:textColor="#000000"
                  android:lines="2" <!-- put this line if you always want to show 2 lines -->
                  android:textStyle="bold"
                  android:maxLines="2" <!-- max number of size... used when text is long -->
                 />
          
              <ImageView
                  android:id="@+id/btnSettings"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:layout_alignParentRight="true"
                  android:layout_centerVertical="true"
                  android:src="@drawable/settings"
                  android:textColor="#000000"
                  android:focusable="false"
                  android:focusableInTouchMode="false" />
          </RelativeLayout>
          

          【讨论】:

            【解决方案6】:

            你的 textview 需要一个特定的宽度才能换行而不是换行内容。您可能想要为这 3 个视图做一个 LinearLayout 而不是 Relative。

            【讨论】:

              【解决方案7】:
              <TextView
                          android:id="@+id/itemTitle"
                          android:layout_width="match_parent"
                          android:layout_height="wrap_content"
                          android:inputType="text|textMultiLine"
                          android:textSize="@dimen/text_size_12"
                          android:layout_gravity="center"
                          android:gravity="center"
                          android:text="Your Text Here"/>
              

              将输入类型设置为 inputType="text|textMultiLine"。这是为了解决我的问题。

              【讨论】:

              • 不是EditText,没有像inputType这样的属性)
              最近更新 更多