2013-07-19 32 views
1

我得到以下需求獲取TextView的高度而不添加到視圖層次

  1. 我需要構建一棵樹,葉子從屏幕頂部到底部放置在左側和右側。我不能把葉子放在一個ListView中,因爲兩個葉子的偏移量相同。

  2. 我不知道物品的高度。

  3. 我需要預先計算動態內容的高度,例如不同長度的字符串。

問題:

如何能否預先計算,這將被放置在描述爲一個TextView插件刺的高度如下:

<TextView 
    android:id="@+id/note_content" 
    android:layout_width="40sp" 
    android:layout_height="wrap_content" 
    android:maxLines="5" /> 

enter image description here

+0

在屏幕上繪製視圖後,您可以更好地處理問題。使用'ViewTreeObserver'來修改'TextView'佈局。 – Vikram

+0

我試圖找到一種方式,然後我繪製視圖到屏幕上,將測量()的工作? – kvh

+0

http://stackoverflow.com/questions/8345384/splitting-text-across-multiple-textviews-fragments-using-viewpager/17536992#17536992 – avimak

回答

0

創建textView,設置LayoutParams,設置文本,調用它的度量方法並讀取測量值。順便說一句,你可以測量文本,而不是textView(見StaticLayout)。

我認爲你最好創建自定義佈局,在那裏你可以實現所有的「葉節點」算法。 Check this lesson.自定義佈局非常簡單)

0

用它來計算你的文本視圖的高度和寬度

textView.getViewTreeObserver().addOnGlobalLayoutListener(
      new OnGlobalLayoutListener() { 
       public void onGlobalLayout() { 
       h=textView.getHeight(); 
       w=textView.getWidth(); 
     textView.getViewTreeObserver() 
          .removeGlobalOnLayoutListener(this); 
    } 

但在xml中,不要將textview指定爲換行內容。因爲它會給你的值0.

+0

這個事件將觸發後,我把TextView的視圖層次結構。我需要知道TextView的高度,我可以在我的自定義視圖組中進行佈局。 – kvh

相關問題