2013-06-21 2 views
3

Есть ли какой-либо эквивалент android:ellipsize (который слишком длинный для текста, слишком длинный по оси x) для слишком длинного текста по оси y? У меня есть TextView, который должен быть фиксированной высотой, однако текст внутри него обычно слишком длинный, чтобы все вписывались, и я хотел бы, чтобы он остановился, прежде чем получить пополам.TextView ellipsize height wise

example cut off

Я не хочу, чтобы установить атрибут android:maxLines, чтобы я мог поддерживать несколько размеров экрана.

Я также рассматривал возможность использования ...

int maxLines = (int) textView.getHeight()/textView.getLineHeight(); 
textView.setMaxLines(maxLines); 

..., но это может вызвать проблему, потому что markup within the text can cause individual lines to be taller or shorter than this height.

Редактировать: я мог бы использовать ScrollView здесь, чтобы предотвратить резку по половине текста, но я предпочел бы, чтобы это был предварительный просмотр, с кнопкой ниже, чтобы пользователь мог щелкнуть, чтобы просмотреть весь текст.

+0

TextView должен иметь фиксированную высоту, но вы не хотите использовать maxLines, чтобы поддерживать несколько размеров экрана. Для меня это кажется противоречием. Лично я использовал maxLines и предоставлял различные макеты/значения maxLines для разных размеров экрана. –

+0

Мне нужно, чтобы TextView выстроился в сетку со следующим изображением, которое будет иметь фиксированную высоту. Я в порядке с текстом, отрезанным раньше, но не хочу, чтобы он прошел мимо изображения, которое находится рядом с ним, поэтому фиксированная высота TextView. Изображение будет меняться время от времени, таким образом, высота изменится, а макс. Строк с жестким кодированием будет недостаточно. – yiati

+0

Эй yiati ... вы нашли какое-нибудь решение? – deepak4bin

ответ

0

Вы можете обернуть свой TextView внутри ScrollView.

<ScrollView android:id="@+id/MyTextParent" 
    android:layout_width="fill_parent" 
    android:layout_height="100dp" 
    android:scrollbars="vertical"> 

    <TextView android:id="@+id/MyText" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="TEXT"/> 

</ScrollView> 
+0

Это было бы жизнеспособным решением, однако я стараюсь, чтобы он не был ScrollView, а скорее предварительным просмотром со ссылкой ниже, которая приведет пользователя ко всему тексту. – yiati

0

Попробуйте установить ellipsize вручную, используя setEllipsize(TextUtils.TruncateAt where) и определения, где вы хотите, чтобы текст, который будет отрезан.