Android默认的Button类提供了一个非常棒的按钮。
周围有很多浪费的空间。现在我想创建一个非常小的按钮,它只比文本/标题略大。如何从代码中执行此操作? 到目前为止,我发现了以下方法,但它仍然提供了太大的按钮并浪费了太多空间:
一个。在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);
现在的问题是按钮仍然太大,它会占用文本周围(在左侧,右侧,上方,下方)的太多空间。
是否有任何提示如何进一步减小按钮的大小?
答案 0 :(得分:117)
按钮具有最小高度和宽度(默认情况下通常为48dp,分别为64dp)。所以添加
android:minHeight="0dp"
android:minWidth="0dp"
获得非常小的按钮:
答案 1 :(得分:8)
对于您的信息,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" />
答案 2 :(得分:0)
在.xml文件中... 你需要将小值传递给xml文件中的layout_height和layout_width ......试试这个。
android:layout_width="50dp" android:layout_height="50dp"
根据您的要求更改价值......
答案 3 :(得分:0)
在您的代码中尝试此操作:
pickBackColor.setWidth(VALUE);
pickBackColor.setHeight(VALUE);
答案 4 :(得分: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" />