2012-01-05 1 views
4

В настоящее время я разрабатываю приложение и просто провел некоторое тестирование на сэндвич с мороженым и заметил некоторое нечетное поведение при использовании свойства android: ellipsize = "end" в текстовом виде. он добавляет символ после точек. Эта ошибка приводит меня в орехи и появляется только в сэндвиче с мороженым. Я видел previous thread about this, но ни одна из исправлений не помогла. Любые идеи, но отчет для Android 4.0, может быть? Мой код ниже incase, я как бы наношу сэндвич с мороженым.сэндвич сэндвич с эллипсом добавляет [

<LinearLayout 
    android:id="@+id/mainTitleLayout" 
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" 
    android:layout_weight="0.36" 
    android:orientation="horizontal" 
    android:weightSum="1" > 
<TextView 
    android:id="@+id/mainTitle" 
    android:layout_width="135dp" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="62dp" 
    android:layout_marginTop="4dp" 
    android:layout_weight="0.53" 
    android:editable="false" 
    android:ellipsize="end" 
    android:gravity="center_vertical|center_horizontal" 
    android:singleLine="true" 
    android:textColor="#fff" 
    android:textSize="26sp" 
    android:textStyle="bold" 
    android:width="125dp" > 
</TextView> 
</LinearLayout> 

Я установил текст динамически в коде через

TextView title = (TextView) act.findViewById(R.id.mainTitle); 
title.setTypeface(Utils.font); 
title.setText(detailTitle); 
+0

Я тестировал его в LinearLayout с некоторым случайным текстом, но текст был усечен, как ожидалось. После трех точек нет другого персонажа. Можете ли вы показать нам текст, который вы помещаете в TextView, и как вы его там помещаете? – Flo

+0

Также с вашим LinearLayout вокруг TextView он отлично работает. – Flo

+0

Это вызывало это для меня «NEW YORK SUNGLASSES» Я динамически настраиваю текст с помощью кода, так что это может иметь какое-то отношение к нему, если вы запускаете setText на текстовом поле, все равно нормально? – MikeIsrael

ответ

6

Я думаю, что знаю вашу проблему. Я обнаружил эту проблему с моим специальным шрифтом, который я установил через setTypeface. Ответ найден в исходном коде для Layout, который обрабатывает рисунок TextViews на экране. Взгляните на метод «эллипсизовать» в ling 1668. В дополнение к многоточивому символу используется символ, пространство с шириной 0 (U + FEFF). Я предполагаю, что ваш пользовательский шрифт не включает символ пробела 0 ширины, что вызывает визуализацию окна. У меня такая же проблема! Исправление потребует изменения файла .ttf или .otf для включения символа пробела 0-ширины. Надеюсь это поможет!

+0

У меня такая же проблема, но я не знаю Как мы предупреждаем файл .ttf или .otf и включаем символ пробела 0-ширины , пожалуйста помогите – naresh

1

У меня была аналогичная проблема с использованием пользовательских шрифтов в TextView, фактически в 1,6 раза. В моем случае, я заменил стандартный TextView с версией в этой ссылке:

android ellipsize multiline textview

и лишние символы ушли.

0

Если бы я тебя, я хотел бы попробовать minLines и MaxLines внутри TextView декларации, таким образом:

android:minLines="1" 
android:maxLines="1" 

вместо андроида: SingleLine = "истинный". У меня была аналогичная проблема, возникшая только при использовании android 4. Я решил так, но я не изменял шрифт через setTypeface.