Android TextView如何获取实际渲染的文本?
有时文本字符串太长而无法容纳时会被截断或遮住。 如何检测何时发生这种情况,并获得渲染与请求渲染的确切字符串?Android TextView如何获取实际渲染的文本?,android,android-layout,Android,Android Layout,有时文本字符串太长而无法容纳时会被截断或遮住。 如何检测何时发生这种情况,并获得渲染与请求渲染的确切字符串? 椭圆并不总是绘制的。别再问那些愚蠢的编辑了。有很多内容,你现在根本没有格式化代码 final ViewTreeObserver obs = viewHolder.myTextView.getViewTreeObserver(); obs.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
椭圆并不总是绘制的。别再问那些愚蠢的编辑了。有很多内容,你现在根本没有格式化代码
final ViewTreeObserver obs = viewHolder.myTextView.getViewTreeObserver();
obs.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Layout l = viewHolder.myTextView.getLayout();
if (l != null) {
int lines = l.getLineCount();
if ( lines > 0 ) {
if (l.getEllipsisCount(lines-1) > 0) {
LazLog.d(PaginatorAdapter.class.getSimpleName(), "Text is ellipsized");
}
}
}
});
有时文本字符串太长而无法容纳时会被截断或遮住。如何检测何时发生这种情况,并获得渲染与请求渲染的确切字符串?椭圆并不总是绘制的。停止询问内容愚蠢的堆栈溢出编辑器。有很多内容,你现在根本没有格式化代码!我已经把它推过了一个以上的点击空间,但它并没有把它识别为代码。有人请编辑并告诉我我在这里做错了什么???好吧,你当然可以得到你的
文本视图的省略(而不是遮住)文本:
String text = (String) textView.getText().subSequence(textView.getLayout().getEllipsisStart(0), textView.getText().length());
如果文本为可扫描文本,则此操作将崩溃。下面是正在发生的更多事情:我试图检测字符串是否太长。到目前为止,它只是截断了Spanable,留下了最后一半。它也不做和椭圆。如果它改为截断呢?我需要一个方法,该方法返回呈现的字符串。整个字符串与在setText(spannable)no@moritzg期间传入的任何字符串相反,它不起作用,因为有时会在没有椭圆的情况下进行截断。在这种情况下,我认为这不会提供实际的字符串。有时,当行太长或整个单词被截断时,您会得到截断而不是省略号。由于你花了时间回答这个问题,所以一定要让选民投票支持这个问题。谢谢