Страницы

Поиск по вопросам

вторник, 12 марта 2019 г.

Скрыть часть длинного текста android

Допустим, есть TextView, состоящий из 20 строк. Я же хочу, чтобы в Activity отображалась только часть (например, 3 строчки), а остальное появлялось в этом же Activity при нажатии на текст. Как это можно сделать? Я знаю, что это можно сделать, обрезав текст и обработать нажатие на TextView, показав при нажатии текст полностью. А есть ли другие инструменты (может быть, что-то есть уже встроенное)?


Ответ

.xml

.java
TextView textView = findViewById(R.id.text_view); textView.setOnClickListener(v -> textView.setMaxLines(Integer.MAX_VALUE));
Параметр maxLines будет ограничивать TextView кол-ом строчек, в примере их будет максимум 3. Параметр android:ellipsize="end" в конце будет ставить ...,
примерно вот так:
и при нажатии он развернется, учитывая все параметры верстки, вы можете сделать более сложную логику, например разворачивать и скрывать, или раскручивать по 1-2 строчки, увеличивая параметр maxLines. Также этот способ хорошо подойдет для анимации в будущем, так как метод setMaxLine будет вызывать invalidate для View, вам просто нужно будет поиграться с видимостью.

Комментариев нет:

Отправить комментарий