Android 文本视图是否在recycleView中省略

Android 文本视图是否在recycleView中省略,android,android-recyclerview,textview,Android,Android Recyclerview,Textview,我有问题要检查文本视图是否被省略。我在循环视图中为项目定义了布局,我必须检查文本是否被省略,如果是,则隐藏按钮。我找到了解决方案,在哪里可以从文本视图中获取布局并检查它是否被省略,但在循环视图中的bind方法中,它总是返回false。你有没有人知道我该怎么做 Layout l = textview.getLayout(); if (l != null) { int lines = l.getLineCount(); if (lines > 0) if (l.getEllipsi

我有问题要检查文本视图是否被省略。我在循环视图中为项目定义了布局,我必须检查文本是否被省略,如果是,则隐藏按钮。我找到了解决方案,在哪里可以从文本视图中获取布局并检查它是否被省略,但在循环视图中的bind方法中,它总是返回false。你有没有人知道我该怎么做

Layout l = textview.getLayout();
 if (l != null) {
 int lines = l.getLineCount();
if (lines > 0)
    if (l.getEllipsisCount(lines-1) > 0)
        Log.d(TAG, "Text is ellipsized");
}
此代码不适用于我。

如另一个SO中所述:

这只在布局阶段之后有效,否则返回的布局将为null,因此在代码中的适当位置调用它

确保在onCreate之后,在文本布局之后调用此函数

试试这个

  <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ellipsize="end"
            android:lines="1" />

在你的适配器中试试这个

    holder.textView.post(new Runnable() {
            @Override
            public void run() {
                if (holder.textView.getLayout() != null) {
                    if (widthText == 0) {
                        widthText = holder.textView.getWidth();
                    }
                    boolean isEllipsize = !holder.textView.getText().toString().equalsIgnoreCase(holder.textView.getLayout().getText().toString());
                } else {
                    Paint paint = new Paint();
                    paint.setTextSize(holder.textView.getTextSize());
                    final float size = paint.measureText(holder.textView.getText().toString());
                    boolean isEllipsize = (int) (size / maxLine) > widthText;
                }
            }
        });
如果您想在文本过长时阅读更多内容,可以使用以下libs:

将您的recycleview适配器张贴在此处,以获得更好的帮助。