wrap_content在按钮高度android中不起作用

问题描述 投票:17回答:5

“wrap_content”在我的按钮中不起作用,它目前看起来像这样:

 now                        want
 ____________
|            |           _____________
|   aaaaaa   |     =>   | aaaaaaaaaaa |
|____________|           -------------

和我的按钮的xml:

 <Button 
     android:layout_gravity="center"
     android:id="@+id/input_expend"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"                               
     android:textSize="12sp"
     android:text="aaaaaaa"                         
     android:background="@drawable/btn_01"/>
 <Button 
     android:layout_gravity="center"
     android:id="@+id/input_expend"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"                               
     android:textSize="12sp"
     android:text="aaaaaaa"                         
     android:background="@drawable/btn_02"/> 

我怎么解决这个问题?谢谢!

android
5个回答
49
投票

ButtonViewandroid:minHeight属性设置为48dip默认值。您可以将minHeight设置为低于实际文本'aaaaa',例如1dp。然后wrap_content将工作。但我不认为这是推荐的。


0
投票

wrap_content不会缩小小于背景的按钮。如果您已经使用九个补丁作为背景,那么将区域的大小减小到最小。如果没有渐变,那么您只需要两个像素来定义可伸展区域,然后确保中心区域尽可能小。使用填充(ninepatch上的右线和底线)来分配填充。

如果你正在使用一个可绘制的图像(不是九个补丁或xml可绘制的),那么使它成为九个可绘制的补丁

如果您不想解决图像中的问题,则需要将layout_height设置为固定值以强制图像缩小(即不使用wrap_content)


0
投票

一种解决方案是将android:padding="@null"添加到XML中的按钮。这将覆盖强制执行的任何现有填充。

还有一个问题我遇到的问题是按钮不会缩小比默认按钮样式中定义的填充小。我前段时间在my own question突出显示了这一点,但还没有得到解决它的答案。


0
投票

背景是添加不需要的填充


0
投票

更改背景不起作用,以及padding =“@ null”。

我最终使用TextView,因为我的按钮很简单,足以满足要求:

<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Join"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:padding="5dp"
        android:textSize="@dimen/xsmall_text_size"
        android:textColor="@drawable/button_text_selector"
        android:background="@color/turquoise"
        android:textStyle="bold"
        android:onClick="buttonOnClick"
        android:clickable="true"/>
© www.soinside.com 2019 - 2024. All rights reserved.