Recyclerview:扩展textview

时间:2015-10-23 20:12:41

标签: android android-recyclerview notifydatasetchanged expandable

我目前在recyclerview中有一个textView,如下所示:

textview

全文说:"这是我放置有关食品的信息的地方。我想截断该行仅显示3行,然后当我按下插入符号时,它将扩展到最大行数。"

如果我点击插入符号(顶部的小向下箭头),我希望它能够展开以便我可以看到所有的行。

在我的recyclerview适配器中,我有以下代码:

    if (holder instanceof InfoViewHolder) {
        ((InfoViewHolder) holder).more.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (!expandedInfo) {
                    ((InfoViewHolder) holder).info.setMaxLines(Integer.MAX_VALUE);
                    expandedInfo = true;
                }
                ((InfoViewHolder) holder).info.setMaxLines(3);
                notifyItemChanged(position);
            }
        });
    }

我只是在textView中操作maxLines来尝试扩展它在textView中占用的空间,以便在我发送notifyItemChanged时视图会自行调整,但是,这不起作用,而且我的信息textview没有扩大。

有谁能告诉我如何让它正常工作?

2 个答案:

答案 0 :(得分:0)

使用这个库可能是解决这个难题的最简单,最快捷的方法:

https://github.com/Manabu-GT/ExpandableTextView

虽然,我希望以旧的方式完成它,而不是导入新的库,所以如果其他人对如何在没有库的情况下有任何想法有任何想法,请随时在下面发布您的建议。

答案 1 :(得分:0)

它无法正常工作,因为无论如何都会调用((InfoViewHolder) holder).info.setMaxLines(3);

因此,在OnClickListener内,它应该是:

int maxLines = expandedInfo ? Integer.MAX_VALUE : 3;
((InfoViewHolder) holder).info.setMaxLines(maxLines);
notifyItemChanged(position);

另外,关于ExpandableTextView库,目前它在RecyclerView中不起作用。查看我的comments on the issue