【问题标题】:Recyclerview: expanding a textviewRecyclerview:扩展文本视图
【发布时间】:2015-10-23 20:12:41
【问题描述】:

我目前在 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 不会扩展。

谁能告诉我怎样才能让它正常工作?

【问题讨论】:

    标签: android android-recyclerview notifydatasetchanged expandable


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      它不起作用的原因是因为无论如何都会调用((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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-04-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-07-03
        • 1970-01-01
        相关资源
        最近更新 更多