RecyclerView上的Android可扩展textview

时间:2016-07-24 19:38:49

标签: android textview expandable

我使用的是recyclerview和holder adapter。这有textview和maxlines是4.我想如果用户单击然后再次展开单击然后折叠。

我的代码正在运作,但我有一个问题; 当我单击textview时,这将扩展工作正常但当我滚动到下面列表时,一些textview是自动扩展状态(但我没有触摸它们)。

XML:

<android.support.v7.widget.AppCompatTextView
    android:id="@+id/text"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="@dimen/uiPadding_4dp"
    android:maxLines="4"/>

持有人:

private final List<Integer> listReadMore = new ArrayList<>();

public void onBind(final Holder holder, final int position) {
    final Obj obj = getObj(position);
    final int id  = obj.id();
    final String text = obj.text();

    holder.text.post(new Runnable() {
        @Override
        public void run() {
            if(holder.text.getLineCount() >= maxLine)
                listReadMore.add(id);
        }
    });

    holder.text.setText(Kit.doHtmlText(text));
    holder.text.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if(listReadMore.contains(id)){
                ObjectAnimator animation = ObjectAnimator.ofInt(
                        holder.text,
                        "maxLines",
                        holder.text.getLineCount());
                animation.setDuration(600);
                animation.start();
                listReadMore.remove(listReadMore.indexOf(id));
            }else{
                ObjectAnimator animation = ObjectAnimator.ofInt(holder.text, "maxLines", 4);
                animation.setDuration(400);
                animation.start();
                listReadMore.add(id);
            }
        }
    });
}

当我使用简化代码时,我又遇到了同样的问题..

holder.text.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        holder.text.setMaxLines(100);
    }
});

我使用https://github.com/Manabu-GT/ExpandableTextView这个api但在recyclerview上有一些问题。

我不知道我该怎么做..

0 个答案:

没有答案