MZCretin / ExpandableTextView

实现类似微博内容,@用户,链接高亮,@用户和链接可点击跳转,可展开和收回的TextView
1.42k stars 165 forks source link

为什么这个action(StatusType type)不能切换成对应的状态,而是一个开关作用? #71

Open Zeng-Ke opened 4 years ago

Zeng-Ke commented 4 years ago
private void action(StatusType type) {
        boolean isHide = currentLines < mLineCount;
        if (type != null) {
            mNeedAnimation = false;
        }
        if (mNeedAnimation) {
            ValueAnimator valueAnimator = ValueAnimator.ofFloat(0, 1);
            final boolean finalIsHide = isHide;
            valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
                @Override
                public void onAnimationUpdate(ValueAnimator animation) {
                    Float value = (Float) animation.getAnimatedValue();
                    if (finalIsHide) {
                        currentLines = mLimitLines + (int) ((mLineCount - mLimitLines) * value);
                    } else {
                        if (mNeedContract)
                            currentLines = mLimitLines + (int) ((mLineCount - mLimitLines) * (1 - value));
                    }
                    setText(setRealContent(mContent));
                }
            });
            valueAnimator.setDuration(100);
            valueAnimator.start();
        } else {
            if (isHide) {
                currentLines = mLimitLines + ((mLineCount - mLimitLines));
            } else {
                if (mNeedContract)
                    currentLines = mLimitLines;
            }
            setText(setRealContent(mContent));
        }
    }

整个方法都没有用到type的值,只是拿去做判空操作,然后做一个开关切换。并不能切换到指定的状态。 现在我这边有一个场景是这样的,列表item中内容用到ExpandableTextview,在展开的情况下调用notifyDataItemSetChange()方法时,它自动折叠了。所以我用一个布尔值每个item的状态,在setContent后面再调用setCurrStatus。但是,就导致初始化列表数据时不是默认折叠了。

GuangNian10000 commented 3 years ago

请问你解决了吗?我想用这个方法设置点击内容收起展开,但压根设置了没用

xh2015 commented 2 years ago

`/**