2014-01-31 20 views
16

如何獲取TextView的可見部分顯示的行數?我使用的文字不完全放在TextView的每個屏幕分辨率上。如何確定在TextView中可見的行數?

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" > 

<TextView 
    android:id="@+id/logs_text" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 

</LinearLayout> 

String s = "very big text" 
TextView logText = (TextView) view.findViewById(R.id.logs_text); 
logText.setText(s);  
+0

你想設置的TextView將有多少行有,或者只是得到他有多少行? – Giacomoni

+0

轉載問題 – umni4ek

+0

使用textviewobject.getText()獲取文本視圖上的文本並與原始文本進行比較。 – Meenal

回答

20

android.text.Layout包含此信息等等。使用textView.getLayout().getLineCount()獲得行數。

請小心,getLayout()可能會返回null如果在佈局過程完成前調用。撥打getLayout()onGlobalLayout()onPreDraw()ViewTreeObserver。例如。

textView.getViewTreeObserver().addOnPreDrawListener(() -> { 
    final int lineCount = textView.getLayout().getLineCount(); 
}); 

如果你只想要一個可見行數你應該使用下面的答覆中提到的方法:

Is there a way of retrieving a TextView's visible line count or range?

+0

我在textview中看到了25行,但是當我使用getLineCount()時,我在logcat中得到了152 – umni4ek

+0

它返回行數in佈局,而不是佈局中可見線的數量。無論如何,你可以使用佈局來計數它們。要儘快更新答案。 –

+0

試試這個然後http://stackoverflow.com/questions/2239356/is-there-a-way-of-retrieving-a-textviews-visible-line-count-or-range –

-1

嘗試是這樣的:

 <EditText 
      android:id="@+id/edt_obs" 
      android:layout_width="0dip" 
      android:layout_weight="75" 
      android:layout_height="wrap_content" 
      android:layout_marginBottom="2dip" 
      android:inputType="textCapCharacters|textMultiLine" 
      android:scrollHorizontally="false" 
      android:gravity="top|left" 
      android:lines="2" 
      android:singleLine="false" 
      android:background="@android:drawable/edit_text" 
      android:textColor="@color/Black" 
      android:textCursorDrawable="@color/Black" 
     /> 

隨着

  android:lines="2" 

我的EditText獲得空間2線,該字段獲取滾動之後。記得使用

  android:singleLine="false" 

我沒有用TextView測試,但我認爲它會工作。

+0

改寫了這個問題 – umni4ek

相關問題