2012-01-26 97 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