我目前在recyclerview中有一个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没有扩大。
有谁能告诉我如何让它正常工作?
答案 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。