Android 文本视图是否在recycleView中省略
我有问题要检查文本视图是否被省略。我在循环视图中为项目定义了布局,我必须检查文本是否被省略,如果是,则隐藏按钮。我找到了解决方案,在哪里可以从文本视图中获取布局并检查它是否被省略,但在循环视图中的bind方法中,它总是返回false。你有没有人知道我该怎么做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
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适配器张贴在此处,以获得更好的帮助。