Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android TextView如何获取实际渲染的文本?_Android_Android Layout - Fatal编程技术网

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期间传入的任何字符串相反,它不起作用,因为有时会在没有椭圆的情况下进行截断。在这种情况下,我认为这不会提供实际的字符串。有时,当行太长或整个单词被截断时,您会得到截断而不是省略号。由于你花了时间回答这个问题,所以一定要让选民投票支持这个问题。谢谢