Сброс Android TextView Maxlines - PullRequest
       0

Сброс Android TextView Maxlines

46 голосов
/ 24 марта 2011

Я хочу сделать TextView разборным от прикосновения пользователя. Когда TextView рухнул, я установил textView.setMaxLines(4);. Как очистить это состояние в моем методе расширения? Я могу думать только о звонке setMaxLines() со значением большого числа, например 10000 .

Есть ли лучшие способы реализовать это?

Ответы [ 2 ]

97 голосов
/ 22 июня 2011

На самом деле, платформа Android делает это, устанавливая MaxLine в Integer.MAX_VALUE.

textView.setMaxLines(Integer.MAX_VALUE);

также, если вы используете Ellipsize, не забудьте установить значение NULL.

textView.setEllipsize(null);

просто проверьте, как фреймворк Android делает именно это;) смотрите setMaxLines (Integer.MAX_VALUE);

private void applySingleLine(boolean singleLine, boolean applyTransformation) {
    mSingleLine = singleLine;
    if (singleLine) {
        setLines(1);
        setHorizontallyScrolling(true);
        if (applyTransformation) {
            setTransformationMethod(SingleLineTransformationMethod.getInstance());
        }
       } else {
            setMaxLines(Integer.MAX_VALUE);
            setHorizontallyScrolling(false);
            if (applyTransformation) {
                 setTransformationMethod(null);
        }
       }
     }

Вы можете найти это в исходном коде Android Open Source Project (AOSP)

https://source.android.com/source/downloading

Если вы не хотите загружать исходный код,Вы можете просмотреть источник на зеркале, подобном этому, на github.

https://github.com/aosp-mirror/platform_frameworks_base/blob/master/core/java/android/widget/TextView.java

4 голосов
/ 02 мая 2011

Попробуйте это ( infoView.getLineCount () ):

public void onMoreClick(View v) {
    Button btn = (Button) v;
    if(!moreSwitcher) {
        infoView.setMaxLines(infoView.getLineCount());
        infoView.setLines(infoView.getLineCount());
        moreSwitcher = true;
        btn.setText(R.string.collapse);
    }else{
        infoView.setMaxLines(5);
        infoView.setLines(5);
        moreSwitcher = false;
        btn.setText(R.string.expand);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...