2017-05-31 12 views
-1

テキストストリングが長すぎると、文字列が切り捨てられたり、歪んだりすることがあります。 これがいつ発生したかを検出し、レンダリングされたものとレンダリングが要求されたものとの正確な文字列を取得する方法はありますか?
楕円は必ずしも描かれません。コンテンツの愚かなエディタについて聞かせてください。たくさんのコンテンツがあり、あなたは今コードをフォーマットしていません!TextView実際にレンダリングされるテキストを取得するにはどうすればよいですか?

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");   
        }  
       } 
      } 
    }); 

時には、テキスト文字列が長すぎると切り詰められるか、または歪んでしまいます。これが起こったときをどうやって検出し、レンダリングされるか、レンダリングされるように要求された正確な文字列を得ることができますか?楕円は必ずしも描かれません。 STUPID STACK OVERFLOWエディタの内容を聞いてはいけません。たくさんのコンテンツがあり、あなたは今コードをフォーマットしていません!私はタップスペース以上にプッシュしており、コードとして認識していません。誰かが編集して、私がここで間違っていたと思われるものを教えてください?あなたのTextView

答えて

0

さてあなたは確かにellipsized得ることができます(けられていない)テキスト:テキストがスキャン可能である場合

String text = (String) textView.getText().subSequence(textView.getLayout().getEllipsisStart(0), textView.getText().length()); 
+0

これはクラッシュします。何が起きているのですか?https://stackoverflow.com/questions/44243141/textview-detect-if-string-exceeds-available-space文字列が長すぎるときを検出しようとしています。これまでのところ、spannableを切り捨て、最後の半分を残しています。また、楕円もしません。 – gitsensible

+0

代わりに切り詰めるとどうなりますか?レンダリングされるStringを返すメソッドが必要です。 setText(spannable)の間に渡されたものとは反対の文字列全体 – gitsensible

+0

私のコードスニペットは切り捨てられたテキストを返します... – moritzg

関連する問題