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

时间:2013-12-04 21:39:23

标签: android

“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"/> 

我该如何解决这个问题?   谢谢!

6 个答案:

答案 0 :(得分:50)

ButtonViewandroid:minHeight属性默认设置为48dip。您可以将minHeight设置为低于实际文字&#39; aaaaa&#39;比如1dp。然后wrap_content将起作用。但我不认为这是推荐的。

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

如果您使用的是可绘制图像(不是9个补丁或xml可绘制的),那么将其设为9个可绘制的补丁

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

答案 3 :(得分:0)

背景是添加不需要的填充

答案 4 :(得分: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"/>

答案 5 :(得分:0)

仅添加minHeight无效。 您还需要将verticalPadding设置为0dp

<Button
        android:id="@+id/button1"
        style="@style/Widget.MaterialComponents.Button.TextButton"
        android:layout_gravity="center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:minHeight="1dp"
        android:paddingVertical="0dp"
        android:textSize="14sp"
        android:text="Login"/>