Как установить maxLines и эллипсис TextView одновременно

Я хочу ограничить свой текстовый вид максимум 5 строками, поэтому я сделал:

<TextView android:id="@+id/text" android:layout_width="fill_parent" android:layout_height="wrap_content" android:maxLines="5" /> 

Но когда я пытаюсь настроить его, чтобы добавить «…», когда текст усечен, я добавляю android: ellipsize = «end». Я вижу … но тогда у моего TextView есть только макс строка из 2 вместо 5.

Можете ли вы предложить, как я могу сделать текстовое представление максимальной строки 5 и добавить «…», когда он будет усечен?

Спасибо.

Solutions Collecting From Web of "Как установить maxLines и эллипсис TextView одновременно"

Прогматически вы можете использовать:

 your_text_view.setEllipsize(TextUtils.TruncateAt.END); your_text_view.setMaxLines(4); your_text_view.setText("text"); 

Попробуйте этот код …

  final TextView tv_yourtext = (TextView)findViewById(R.id.text); tv_yourtext.setText("A really long text"); ViewTreeObserver vto = tv_yourtext.getViewTreeObserver(); vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { @Override public void onGlobalLayout() { ViewTreeObserver obs = tv_yourtext.getViewTreeObserver(); obs.removeGlobalOnLayoutListener(this); if(tv_yourtext.getLineCount() > 6){ Log.d("","Line["+tv_yourtext.getLineCount()+"]"+tv_yourtext.getText()); int lineEndIndex = tv_yourtext.getLayout().getLineEnd(5); String text = tv_yourtext.getText().subSequence(0, lineEndIndex-3)+"..."; tv_yourtext.setText(text); Log.d("","NewText:"+text); } } }); 

Есть такой же вопрос android эллипсис многострочный textview Это известная ошибка, довольно старая и еще не исправлена ​​:(

Кто-то отправил обходной путь http://code.google.com/p/android-textview-multiline-ellipse/, возможно, это поможет вам (или кому-то еще)

Вам нужно только добавить эту строку в TextView:

 android:ellipsize="marquee" 

Когда я устанавливаю высоту TextView в постоянное значение (например, 50dp), он отлично работает для меня.