2012-01-26 100 views
1

我觀察過EditText小部件的奇怪之處。如果向下調整layout_height(比如說36dp),那麼小部件的背景會在文本的上下顯示條。EditText layout_height oddity

<EditText 
    android:id="@+id/editText1" 
    android:layout_width="wrap_content" 
    android:layout_height="36dp" 
    android:textSize="15sp" 
    android:layout_alignLeft="@+id/button1" 
    android:layout_alignParentTop="true" 
    android:layout_marginTop="80dp" 
    android:inputType="text" 
    android:hint="hh:mmAM" > 
</EditText> 

這裏是什麼樣子: example screen capture

的灰色條上方和下方的時間應該是一個堅實的灰色地帶。實際上,當layout_height達到48dp時,它們確實變成了一個可靠的灰色區域。當您將高度調整爲48dp時,灰色條之間的間距變得越來越窄。有沒有解釋這種行爲,或者這是一個Android錯誤?有沒有解決方法?

我應該補充說我正在使用480x800屏幕(Nexus S)。

+0

將EditText上的layout_height設置爲除wrap_content之外的任何內容都是可用性方面的可怕想法。我懷疑這種行爲是由於EditText的背景圖像(由框架提供)在縮小到比圖像高度更小的高度時縮放的方式。 –

+0

不幸的是,我別無選擇。我的屏幕設計要求我縮小EditText字段的大小,以便它們適合HVGA等較小的屏幕。 (屏幕設計最初是在Nexus S上完成的,即WVGA)。爲了適應屏幕設計,建議您不要減小版面高度是愚蠢的;設計師必須具備靈活性。 –

回答

0

看起來像9patch問題。 當9patch圖像附加到視圖的高度小於9patch所需時,它看起來像你的情況,因爲9patch由於9patch正常顯示所需的最小尺寸具有「不可拉伸面積」。

+0

所以這是一個錯誤?沒有解決方法? –

+0

如果您必須將edittext高度設置爲小於48dp,則可以將edittext的背景更改爲您自己的9patch圖像。 – lulumeya