Текстовое изображение показывает частичный текст

У меня есть TextView, в котором я должен загрузить сообщение. TextView имеет максимум 2 строки ( android:lines="2" ). Сообщение может содержать символ «\ n».

Как загрузить сообщение в этом TextView, чтобы слова были обернуты, и если в этих двух строках сообщение не подходит, в конце последнего видимого слова я должен добавить три точки (…)? Как определить длину текста, который подходит для этого TextView?

Мой код для TextView

 <TextView a:id="@+id/tv_message" a:gravity="top" a:layout_width="wrap_content" a:layout_height="wrap_content" a:layout_alignParentTop="true" a:layout_toRightOf="@id/iv_icon" a:layout_marginLeft="2dp" a:layout_marginTop="4dp" a:paddingRight="7dp" a:paddingBottom="5dp" a:textSize="12sp" a:typeface="sans" a:ellipsize="marquee" a:lines="2" a:maxLines="2" a:textColor="@android:color/black" /> 

Но в приложении текст появляется на двух строках, даже если есть строка, содержащая подпись. Сообщение выглядит так: «текст сообщения» + «\ nSignature», но сообщение может быть на 1,2,3 строки, в зависимости от длины сообщения.

    В XML используйте свойство android:ellipsize="marquee" для TextView.

    Ваш TextView может быть определен следующим образом:

     <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="2" android:lines="2" android:ellipsize="marquee"/> 

    Изменить : я пробовал следующий код, адаптированный из вашего:

     <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/rlt_news" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/cell_background" android:padding="5dip" > <TextView android:id="@+id/tv_title" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:paddingLeft="5dip" android:text="Name" android:textStyle="bold" /> <ImageView android:id="@+id/rss_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/tv_title" android:layout_marginLeft="2dip" android:adjustViewBounds="true" android:maxHeight="100dip" android:maxWidth="100dip" android:src="@drawable/rss_cell_icon" android:visibility="visible" /> <TextView android:id="@+id/tv_description" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_marginLeft="2dp" android:layout_marginTop="4dp" android:layout_toRightOf="@id/rss_icon" android:ellipsize="marquee" android:gravity="top" android:lines="2" android:maxLines="2" android:paddingBottom="5dp" android:paddingRight="7dp" android:text="Description of the news, just the short paragraph, \nSignature, to see how it works if there are more than two lines" android:textColor="@android:color/black" android:textSize="12sp" android:typeface="sans" /> </RelativeLayout> 

    И вот вывод:
    Введите описание изображения здесь

    Используйте android:ellipsize="end" вместо "marquee", который сделал это для меня.

    Gabi,

    У меня тоже была такая же проблема. Чтобы включить эллипсизацию в текстовом режиме с двумя строками, я использую следующие параметры:

     android:maxLines="2" // You already got this one android:ellipsize="end" // also this one android:singleLine="false" // This is the command that solves your problem. 

    К сожалению, у меня появился новый сценарий для моего приложения. Я должен использовать 3 строки с эллипсисом, и эта конфигурация работает только для 2 строк … 🙁 Удачи

    Если вы установите текст из кода, вы должны снова установить параметры!

     textView.setText(content); textView.setEllipsize(TruncateAt.END); textView.setLines(5); textView.setMaxLines(5); 

    Это работает для меня, когда я устанавливаю его в коде не в XML-макете

     holder.txtDescription.setText(text); holder.txtDescription.setMaxLines(3); holder.txtDescription.setEllipsize(TruncateAt.END); 
      String s = "line1 \nline2 \nline3"; String [] lines = s.split("\n"); String twolines; if (lines.length > 2) { twolines = lines[0] + "\n" + lines[1] + "..."; } else { twolines = s; } 

    Это должно дать вам желаемый результат, просто используйте

     ((TextView)findViewById(R.id.text)).setText(twolines); 
    Intereting Posts
    Как я могу определить, что приложение является подвижным для SD-карты? Android POST имеет пустой ответ Съемка с пользовательской камеры растягивается при сохранении в ImageView «Аргумент« контекст »не может быть нулевым» AutoCompleteTextView – как отключить раскрывающееся меню, когда у нас есть одно точное соответствие после фильтрации? Как создать или найти автономную привязку для Android NDK, поддерживающую fortran? Android – ListView показывает только первый результат Удалить все элементы внутри linearlayout Как связать проект библиотеки в Android Studio Мобильное приложение HTML5 работает, когда экран телефона выключен? Как перебирать элементы в Android RecyclerView? Как играть в видеофайл в андроиде? Обновление вида сетки Динамически при удалении элемента (файла) UnsupportedOperationException AudioEffect: неверная операция с параметрами Как реализовать приложение Intro с анимацией совместного просмотра