Подтвердить что ты не робот

Android: что-то лучше, чем андроид: ellipsize = "end", чтобы добавить "..." в укороченные длинные строки?

Это свойство делает

"короткое и очень длинное слово"

to

"short и

. Но я хочу иметь что-то. как

"короткий и очень-длинный..."

Прямо сейчас я усекаю строку в коде Java. Однако это зависит от количества символов, а не от фактической длины ссылки. Итак, результат не очень приятный.

String title;
    if(model.getOrganization().length() > 19) {
      title = model.getText().substring(0, 15).trim() + "…";
    } else {
      title = model.getText();
    }
    ((TextView) findViewById(R.id.TextViewTitle)).setText(title);

Обновление

Только что заметил, это свойство фактически добавляет "..." в нескольких случаях. Но не во всех из них:

12345678901234567890 становится "12345678901234..."

Однако

"1234567890 1234567890" становится "1234567890", а не "1234567890 123..."

Обновление 2

Теперь это действительно фанки! Я просто установил singleLine = true и удалил maxLine (ошибка появляется с атрибутом ellipsize и без него)...

alt text

Это снимок экрана от Motorola Milestone с обновлением android 2.1. То же самое происходит и с HTC Desire с той же версией Android.

Обновление 3

Теперь я использую android: ellipsize = "marquee". Кажется, это единственно правильная рабочая настройка. Он также движется только при фокусировке. Я также вижу это во многих других приложениях. Я предполагаю, что это обычная практика.

4b9b3361

Ответ 1

См. мое обновление 3. В обходном пути использовалось "marquee". В это время я видел множество приложений. Теперь, с новыми версиями Android, эта функция, скорее всего, исправлена ​​и будет работать так, как ожидалось. (моя догадка)

Ответ 2

Если это для одной строки, попробуйте следующее:

android:ellipsize="end"
android:maxLines="1"
android:scrollHorizontally="true"
android:singleLine="true"

Это сработало для меня.

Ответ 3

У меня была аналогичная проблема и установка этого свойства в TextView помогла:

android:singleLine="true"

Кроме того, я использовал RelativeLayout, поэтому я ограничил пространство, которое TextView мог взять, установив левое поле на кнопку справа от TextView, чтобы текст не мог расширяться дальше и был вынужден обрезать его содержимое.

Возможно, это не решение вашей проблемы, но это помогло мне в аналогичной ситуации.