эллипс сэндвич мороженого добавляет [ - PullRequest
4 голосов
/ 05 января 2012

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

 <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);

Ответы [ 3 ]

6 голосов
/ 10 февраля 2012

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

1 голос
/ 07 февраля 2012

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

многострочное текстовое представление для Android с многоточием

и лишние символы исчезли.

0 голосов
/ 02 мая 2012

На вашем месте я бы попробовал minLines и maxlines внутри объявления TextView следующим образом:

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

вместо android: singleLine = "true".У меня была похожая проблема, которая возникла только при использовании Android 4. Я решил таким образом, но я не изменил шрифт через setTypeface.

...