40

Android 默认 Button 类提供了一个非常大的按钮。

带标题的按钮

周围有很多浪费的空间。现在我想创建非常小的按钮,只比文本/标题大一点。如何从代码中做到这一点?到目前为止,我找到了以下方法,但它仍然提供了太大的按钮并浪费了太多的空间:

A. 在 res/layout 中创建一个 XML (smallbutton.xml):

<?xml version="1.0" encoding="utf-8"?>

    style="?android:attr/buttonStyleSmall"
    android:text="color"
    android:padding="0dp"
    android:layout_margin="0dp"

    android:textSize="8dp"
    android:maxHeight="2dp"
    android:maxWidth="2dp"

/>

B. 从您的代码中将其膨胀并添加到视图中:

Button pickBackColor = (Button) this.getLayoutInflater().inflate(R.layout.smalbutton,null);

...

LinearLayout linLayout = new LinearLayout(this);

linLayout.addView(pickBackColor);

现在的问题是按钮仍然太大,它在文本周围(左、右、上、下)占用了太多空间。

在此处输入图像描述

任何提示如何进一步减小按钮的大小?

4

5 回答 5

151

按钮具有最小的高度和宽度(默认情况下通常分别为 48dp 和 64dp)。所以添加

android:minHeight="0dp"
android:minWidth="0dp"

获得非常小的按钮:

在此处输入图像描述

于 2013-01-08T10:16:02.177 回答
11

供您参考,Android 还提供了定义较小按钮的默认样式:

style="?android:attr/buttonStyleSmall"

如有必要,您还可以修改此默认样式并在您的文件 styles.xml 中定义自定义属性。以下是问题中描述的修改示例:

<style name="MyButtonStyleSmall" parent="android:Widget.Button.Small">
    <!-- Customizations  -->
    <item name="android:minHeight">0dp</item>
    <item name="android:minWidth">0dp</item>
</style>

然后你只需要在 XML 中调用它:

<Button 
   android:id="@+id/small_button"
   android:text="@string/example"
   android:contentDescription="@string/example_desc"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   style="@style/MyButtonStyleSmall" />
于 2013-05-16T00:38:02.233 回答
0

在 .xml 文件中...您需要将较小的值传递给 xml 文件中的 layout_height 和 layout_width ......试试这个。

android:layout_width="50dp" android:layout_height="50dp"  

根据您的要求更改值...

于 2012-04-21T12:25:04.163 回答
0

在你的代码中试试这个:

pickBackColor.setWidth(VALUE);
pickBackColor.setHeight(VALUE);
于 2012-04-21T13:21:25.247 回答
0
    <com.google.android.material.button.MaterialButton
        android:id="@+id/food_item_minus_button"
        android:layout_width="36dp"
        android:layout_height="36dp"
        android:layout_marginTop="8dp"
        android:layout_marginBottom="8dp"
        android:background="@drawable/custom_small_button_bg"
        android:drawableLeft="@drawable/ic_minus"
        android:paddingStart="6dp"
        android:paddingLeft="6dp" />
于 2020-10-20T05:58:36.127 回答