“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"/>
我该如何解决这个问题? 谢谢!
答案 0 :(得分:50)
Button
是View
,android: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"/>