Подтвердить что ты не робот

Reset Максимальное количество текстовых просмотров Android

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

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

4b9b3361

Ответ 1

На самом деле, как это делает платформа для 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

Ответ 2

Попробуйте это (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);
    }
}