所以,目前我有一个看起来像上面第一张图片的按钮。如何减少按钮本身内部文本的填充(看起来更像第二个图像)?
布局宽度和高度设置为:
android:layout_width="match_parent"
android:layout_height="wrap_content"
自定义样式形状具有参数“
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="10dp">
其余只是颜色属性和半径值。
为了说清楚,我希望按钮的框架能够更紧密地拥抱“登录”文本。
非常感谢所有帮助和反馈。感谢。
答案 0 :(得分:192)
我花了很长时间才找到这个,但按钮中文本周围的“填充”根本不是填充物。默认的Widget.Button样式包含minHeight属性。更改按钮上的minHeight将允许您按预期调整填充。
<Button
android:id="@+id/header"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/test"
android:textColor="@color/black"
android:minHeight="40dip"/>
<style name="Widget.Holo.Button" parent="Widget.Button">
<item name="android:background">@android:drawable/btn_default_holo_dark</item>
<item name="android:textAppearance">?android:attr/textAppearanceMedium</item>
<item name="android:textColor">@android:color/primary_text_holo_dark</item>
<item name="android:minHeight">48dip</item>
<item name="android:minWidth">64dip</item>
</style>
答案 1 :(得分:6)
在“材料组件库”中,MaterialButton
的默认样式为insetBottom
和insetTop
,其值为6dp
。
您可以在布局中更改它们:
<com.google.android.material.button.MaterialButton
android:insetTop="0dp"
android:insetBottom="0dp"
../>
或采用样式:
<style name="Button_no_insets" parent="Widget.MaterialComponents.Button"..>
<item name="android:insetTop">0dp</item>
<item name="android:insetBottom">0dp</item>
</style>
答案 2 :(得分:4)
在自定义shape.xml文件中尝试此操作
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="1dp"
android:padding="1dp">
您也可以在按钮的xml中进行更改
android:layout_width="wrap_content"
android:layout_height="wrap_content"
答案 3 :(得分:0)
如果您想要更小的顶部和底部填充,请使用:
android:paddingTop="2dp"
android:paddingBottom="2dp"
答案 4 :(得分:0)
您可以在 AppCompatButton 中使用 Borderless 样式,如下所示。还要使用您喜欢的背景颜色。
Widget.AppCompat.Button.Borderless.Colored
按钮代码
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/button_visa_next"
android:background="@color/colorPrimary"
style="@style/Widget.AppCompat.Button.Borderless.Colored"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/spacing_normal"
android:text="@string/next"
android:textColor="@color/white"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
输出: