Intereting Posts
Android Lollipop прекратил действие ActionBar, как мне перенести приложение, которое использует ActionBar и Tabs? Espresso: Thread.sleep (); Сохранить файл в общедоступном каталоге с помощью Cordova FileTransfer Google Cloud Messaging через протокол XMPP (сервер, работающий с PHP и XMPPHP). Как это работает? Как настроить Android Studio, чтобы я мог скомпилировать ее в автономном режиме (отключен от Интернета) Android Log.v (), Log.d (), Log.i (), Log.w (), Log.e () – Когда использовать их? Как узнать, продолжаю ли я слушать сокет в Android? Коды ошибок Android MediaPlayer? Android Studio / Intellij Idea: «Оглавление» для класса На вкладках TabHost на вкладке Android во время использования аппаратной клавиатуры Завершено с не нулевым значением выхода 3 Android Mobile Backend Starter сбой 404 не найден … несколько раз Воспроизведение звукового файла из Интернета при нажатии кнопки Android Alpha Animation: альфа-значение возвращается к старому значению после завершения анимации Какое регулярное выражение может использоваться для фильтрации сообщений dalvikvm AND dalvikvm-heap из логарифма

Как узнать, отключено ли текстовое содержимое TextView

Я могу установить максимальную строку в моем TextView в XML-файле макета. В моем коде после вызова setText () в TextView, как я могу узнать, было ли отрезано текстовое содержимое (т. Е. Текст длиннее максимальной строки)?

Спасибо.

Solutions Collecting From Web of "Как узнать, отключено ли текстовое содержимое TextView"

Так что пока я еще не тестировал это (извините, нет sdk-установки передо мной)

В вашем TextView должен быть создан объект Paint. Теперь я бы предположил, что TextPaint был создан с правильным дополнением и смещением для фонового изображения текстового вида. Поэтому вы должны быть способны сделать что-то вроде

TextView a = getViewById(R.id.textview); TextPaint paint = a.getPaint(); Rect rect = new Rect(); String text = String.valueOf(a.getText()); paint.getTextBounds(text, 0, text.length(), rect); if(rect.height() > a.getHeight() || rect.getWidth() > a.getWidth()) { Log.i("TEST", "Your text is too large"); } 

Я знаю, что это старый вопрос, но я наткнулся на него в поисках подобного ответа и хотел предложить решение, которое я нашел, в случае, если кто-то еще задается вопросом.

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

 TextView myTextView = rootView.getViewById(R.id.my_text_view); if (myTextView.getLineCount() > myTextView.getMaxLines()) { // your code here } 

Попробуй это:

 mTextView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { ViewTreeObserver obs = mTextView.getViewTreeObserver(); obs.removeOnGlobalLayoutListener(this); int height = mTextView.getHeight(); int scrollY = mTextView.getScrollY(); Layout layout = mTextView.getLayout(); int firstVisibleLineNumber = layout.getLineForVertical(scrollY); int lastVisibleLineNumber = layout.getLineForVertical(height + scrollY); //check is latest line fully visible if (mTextView.getHeight() < layout.getLineBottom(lastVisibleLineNumber)) { // TODO you text is cut } } });