2014-02-17 3 views
27

Я знаю, что этот вопрос задан много раз, я прошел все решения, но проблема такая же.Как показать 3 точки в конце текста в текстовом виде

Я хочу, чтобы длина моего текста составляла 50 символов. теперь он идет в 2 строках.

Ниже то, что я сделал:

<TextView 
      android:id="@+id/notification_Message" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/notification_head" 
      android:layout_centerHorizontal="true" 
      android:layout_margin="10dp" 
      android:gravity="center" 
      android:ellipsize="end" 
      android:maxLength="50" 
      android:text=" Hello developer. please check this message for long length. max length to 50 characters. " 

      android:textSize="20sp" /> 

текст здесь просто образец текста я добавил. он не показывает 3 точки в конце, а показывает сообщение до 50 символов. я пробовал max линий тоже, одиночная линия ложный тоже. но никакого положительного результата. Я также не хочу обращаться с этой штукой программно, добавляя три точки логически.

Пожалуйста, помогите

ответ

57

Сделать предустановленную ширину вашего TextView и добавить эти атрибуты (Shout-аут для @TD)

android:ellipsize="end" 
android:maxLines="1" 

В MaxLines будет убедиться, что текст не будет отображаться в двух строках и ellipsize добавит три точки в конце.

Старый Ответ

android:ellipsize="end" 
android:singleLine="true" 
+1

'android: singleLine =" true "' устарел сейчас. Вместо этого используйте 'android: maxLines =" 1 "'. –

4

Использование singleLine = "true" для предельного текста по SingleLine

+0

50 символов не могут быть представлены в одной строке –

+0

Вещь ... SingleLine устарела, но я не мог найти способ сделать работу с эллипсисом без singleLine = true, когда я это пробовал некоторое время назад. –

+0

Если вам нужно показать ровно 50 символов, вы должны добавить 3 точки в конце и изменить предел до 53 с помощью кода –

0
<TextView 
      android:id="@+id/txt__customizer_item" 
      android:layout_width="wrap_content" 
      android:layout_height="40dp" 
      android:gravity="center" 
      android:paddingRight="20dp" 
      android:singleLine="true" 
      android:text=" Hello developer. please check this message for long length. max length to 50 characters. " 
      android:textAppearance="@android:style/TextAppearance.Medium" 
      android:textColor="@color/light_blue" 
      android:textSize="20sp" /> 

Это работает для me.give обивка из правого side.it автоматически показывает ...

+0

Дорогой, проблема в том, что 50 символов не могут быть в одной строке. Затем, как мы можем установить одну строку в true –

+0

, тогда у вас есть 2 строки для этого. –

10

android:ellipsize будет работает только с:

android:singleLine="true" 

или

android:maxLines="#any number#" 

android:scrollHorizontally="true" 

Потому что maxLength усекает текст.

Значит, вам нужно управлять ярлыком с кодом, если вы хотите отображать только 50 символов + или две строки для текстового просмотра.

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:ellipsize="end" 
    android:maxLines="2" 
    android:scrollHorizontally="true" 
    android:text="Hello developer. please check this message for long length. max length to 50 characters." 
    android:textSize="20sp" /> 
+0

Что делать, если я хочу, чтобы максимальные символы были равны 50 –

+1

Резюме: - в текстовом представлении должно отображаться 50 символов, независимо от того, портрет - портрет или пейзаж. - независимо от того, если текст в 2-х или 3-х линий - если текст более чем 50 символов точек должны появиться - если вы используете ellipsize maxLanght вырезать точки Единственный способ я вижу: ' String toCut = «Привет разработчик, пожалуйста, проверьте это сообщение на длинную длину. Max length до 50 символов."; if (toCut.length()> 50) { toCut = toCut.substring (0, 50) + '...'; } textView.setText (toCut); ' –

+0

Я знаю, что это можно сделать. но позже мне нужно getText из этого texview. то снова это создаст беспорядок для меня –

1

Создать свой подгоняем TextView:

<com.xyz.CustomizedTextViewName 
     android:id="@+id/app_title" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical" 
     android:ellipsize="end" 
     android:singleLine="true" 
     android:maxEms="10" 

     app:typeface="roboto_bold"/> 
28

Для одной строки текста с точкой, но теперь его Остаточная поэтому не использовать singleLine больше

Благодаря t его пост я обнаружил, что, как показывают точки после окончания текста, если у нас есть еще одна линии, она работает для меня :)

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

поста здесь этот ответ, потому что весь ответ здесь для одной строки не для многострочного

1

Я тоже боролся с этим. android:maxLength не имел никакого эффекта, поэтому я играл с android:maxWidth, и это сработало.

Оформить заказ ниже.

<TextView 
     android:id="@+id/tv_comment_author" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:maxWidth="120dp" 
     android:singleLine="true" 
     android:ellipsize="end" 
     android:text="@string/dummy_text"/> 
2

Подход @Lokesh работает нормально.

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

Но я понимаю, что TextView будет усечен словом (по умолчанию). Показать, если у нас есть текст, как:

тест long_line_without_any_space_abcdefgh

TextView покажет: тест

...

И я нашел решение, справиться с этим проблема, замените пробелы символом пробела unicode без пробела, он заставит TextView обмениваться символами вместо слов:

yourString.replace(" ", "\u00A0"); 

Результат:

тест long_line_without_any_space_abc ...

+0

Большое спасибо. Это решение сработало для меня. – user1182217

+0

Это сработало. Большое спасибо – Deepak

1

Это ответ, что вы хотите:

<TextView 
     android:id="@+id/tv_title" 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="wrap_content" 
     android:text="Title" 
     android:maxLines="1" 
     android:ellipsize="end" 
     android:maxWidth="195dp" 
     android:textColor="@color/white" 
     android:textSize="14dp" 
     android:gravity="center" 
     /> 
6

android:singleLine="true" осуждается

лучше использовать

android:maxLines="1"

и android:ellipsize="end" добавить »..." в конце текста

+3

Любая идея о том, как управлять эллипсисом в середине очень-значного слова без пробелов? Кажется, он разбивается на пробелы вместо myVeryLongWord ... –

0

вы можете сделать это xml:

<TextView 
    android:id="@+id/textview" 
    android:maxLines="1" // or any number of lines you want 
    android:ellipsize="end" /> 
Смежные вопросы