бутерброд с мороженым эллипса добавляет [

В настоящее время я разрабатываю приложение и только что провел некоторое тестирование бутерброда с мороженым и заметил странное поведение при использовании свойства 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);

person MikeIsrael    schedule 05.01.2012    source источник
comment
Я протестировал его в LinearLayout со случайным текстом, но текст был усечен, как и ожидалось. После трех точек нет другого символа. Можете ли вы показать нам текст, который вы поместили в TextView, и как вы его туда поместили?   -  person Flo    schedule 05.01.2012
comment
Также с вашим LinearLayout вокруг TextView он отлично работает.   -  person Flo    schedule 05.01.2012
comment
это было причиной этого для меня НЬЮ-ЙОРК СОЛНЦЕЗАЩИТНЫЕ ОЧКИ Я устанавливаю текст динамически через код, так что это может иметь какое-то отношение к этому, если вы запустите setText в текстовом поле, все еще в порядке?   -  person MikeIsrael    schedule 05.01.2012
comment
Да должно быть нормально. Покажите код, где вы установили текст.   -  person Flo    schedule 05.01.2012
comment
Хорошо, я обновил вопрос и обнаружил исходную проблему: кажется, что setTypeface для другого шрифта вызывает появление [. Поменял шрифт и стало нормально. Но я не понимаю, почему это появилось только на бутерброде с мороженым.   -  person MikeIsrael    schedule 05.01.2012
comment
О, отлично, по крайней мере, вы нашли источник проблемы. Но да, это действительно очень странное поведение.   -  person Flo    schedule 05.01.2012
comment
да, но поиск источника мне не очень помогает, потому что я хочу использовать этот пакет шрифтов   -  person MikeIsrael    schedule 05.01.2012


Ответы (3)


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

person icecreamman    schedule 10.02.2012
comment
У меня такая же проблема, но я не знаю, как нам предупредить файл .ttf или .otf и включить символ пробела шириной 0. пожалуйста, помогите мне - person naresh; 12.07.2013

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

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

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

person Sara    schedule 07.02.2012

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

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

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

person Shine    schedule 02.05.2012