Как добавить Textview рядом друг с другом и переместить их на следующую строку, если они не подходят - PullRequest
1 голос
/ 21 сентября 2011

У меня есть 5 видов текста, каждый вид текста имеет свой фон, и они находятся рядом друг с другом, их размеры меняются в зависимости от объема текста, который я в них вкладываю. Я хочу знать, если в любой момент они перестают соответствовать, потому что они достигают границы родителя. Но не только потому, что если они не подходят, я хочу добавить что-то вроде «нажмите здесь, чтобы увидеть больше». Итак, как мне определить, сколько места они занимают, когда я добавляю к ним текст? спасибо

1 Ответ

2 голосов
/ 21 сентября 2011

Вы можете использовать TextUtils.ellipsize .
Сохранение фактического текста в элементе. Вызовите ellipsize с текстом в качестве параметра и установите возвращаемый текст в textview.
Вы можете установить обратный вызов TextUtils.EllipsizeCallback, который будет вызываться, когда текст станет эллиптическим.

TextUtils.EllipsizeCallback ellipsizeCallback = new TextUtils.EllipsizeCallback(){
     void ellipsized(int start, int end) {
         // enable the `click here to see more` button.
     }
}

...
CharSequence elipsizedText = ellipsize (mtext, mtxtpaint, 
                                        avail, TextUtils.TruncateAt.END , 
                                        preserveLength, ellipsizeCallback);
tv.setText(mtext);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...