Intereting Posts
Проблема интерфейса Javascript для Android proguard Eclipse: укажите несколько каталогов res, например, указать несколько каталогов src Android «проведите пальцем влево, чтобы удалить», жест в элементе списка, стиль ICS Андроидный указатель входа без использования webview Почему EditText в пользовательском составном представлении повторно использует текст, введенный в другой составной экземпляр вида? Как отклонить Snackbar, используя собственную кнопку действия? Ускорение создания приложений Android – компилятор Java для использования нескольких ядер процессора Внутренний класс фрагмента должен быть статическим Как обращаться с намерением: // по URL-адресу webView? Android Intents: запуск активности с использованием имени класса из другого приложения, имеющего тот же sharedUserId Как отправить AT-команды на основе профиля BT Hands-Free в Android? Как вы помещаете границу вокруг ListView? Панель управления Android ColorControlNormal color Как открыть приложение из виджета в Android? Фрагменты и анимация Android

Как установить 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), он отлично работает для меня.