Android Textview未在列表中显示多行

时间:2014-07-31 05:30:39

标签: android android-listview textview multiline

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

enter image description here

正如您所看到的,我无法将文本视图拆分为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文件中执行此操作。我咨询了我们自己的堆栈溢出并在我的textview中添加了这些行。

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

但是你可以看到图像中没有一个正在工作。帮助。

7 个答案:

答案 0 :(得分:2)

只需将1个标签添加到Textview That

 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"/>

答案 1 :(得分:1)

在您的textview中添加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"
           />

不要忘记清除项目。

答案 2 :(得分:1)

请尝试这种方式,希望这有助于您解决问题。

<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 :(得分:1)

android:layout_toLeftOf="@+id/btnSettings"中添加textview并移除其父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>

答案 4 :(得分:1)

您只需在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>

答案 5 :(得分:0)

你的textview需要是一个特定的宽度,以包装不包装内容。你可能想对这3个视图做一个LinearLayout而不是相对。

答案 6 :(得分:0)

<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”。这样可以解决我的问题。