2013-06-21 15 views
2

我是Android開發的新手,有一件事我不明白,可能這是一個錯誤,但我真的不敢相信這是一個這樣的長時間。請看看這裏:setMinHeight在android.widget.TextView中無法正常工作

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.2.2_r1/android/widget/TextView.java?av=f

在setMinHeight(INT了minHeight)代碼{ 設置mMinimum =了minHeight;到minHeight。爲什麼?這種方法是不是應該設置mMinHeight = minHeight?

也看看

setMinWidth(INT minpixels){

**mMinWidth** = minpixels; 

這是在我的眼裏是正確的。

編輯:我需要以編程方式設置mMinHeight成員,但我發現沒有方法來做set,所以這怎麼做?

+0

注意對於像我未來的讀者:如果你有一個XML格式的設置了minHeight,似乎試圖改變它在代碼中沒有按」工作(Android 4.x測試)。如果您從XML中刪除它,則可以將其設置爲代碼,甚至可以更改它(將多次設置爲不同的值)。 – eselk

回答

1

最小高度是以稍微不同的方式完成的,因爲您可以自定義視圖爲這麼多線條高。隨着寬度,你可以按照你指出的正常方式來做到這一點。

1

我認爲這是因爲你也可以設置minLines作爲視圖「高」的度量,它使用mMinimum作爲可以引用像素或行的字段。

如果你看getMinHeight,它變得清晰:

public int getMinHeight() { 
    return mMinMode == PIXELS ? mMinimum : -1; 
} 

這個TextView的最小高度以像素爲單位,或-1,如果最低高度中的行數設置,而不是使用或。 setLines(INT)。

所以mMinimum使用正確的領域,它是雙重目的。

榮譽給你搶先通過源代碼看雖然:)

+0

感謝您的解釋,但是我怎樣才能設置mMinHeight成員呢?我有一個包含數百個按鈕的表,我不想爲xml-Editor中的每個按鈕設置成員,但是以編程方式。哪種方法是正確的? – Erik

+0

只需使用textView.setMinHeight(int heightInPixels)http://developer.android.com/reference/android/widget/TextView.html#setMinHeight(int) –

+0

我的意思是yourButton.setMinHeight()當然。 Button繼承自textview。 –