问题
I would like to remove the padding around text in Button view. The first screenshot is the result I would achieve, and the second one is the state of the art.
Of course, I have defined a custom drawable to get the button appearance. But even if I set the padding attribute to 0dp the result does not change.
Any suggestion, please?
EDIT Here is the xml code of the button
<Button
android:id="@+id/btnCancel"
style="@style/dark_header_button"
android:layout_width="wrap_content"
android:layout_marginLeft="10dp"
android:layout_height="wrap_content"
android:includeFontPadding="false"
android:padding="0dp"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:text="@android:string/cancel" />
Here is the style xml file:
<style name="dark_header_button">
<item name="android:background">@drawable/bkg_dark_header_button</item>
<item name="android:shadowDy">-1</item>
<item name="android:shadowColor">#000000</item>
<item name="android:shadowRadius">1</item>
<item name="android:textSize">14sp</item>
<item name="android:textColor">#ffffff</item>
</style>
and here is the drawable xml file:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape>
<corners android:radius="10dp" />
<gradient
android:angle="90"
android:endColor="#060606"
android:startColor="#707070"
android:type="linear" />
</shape>
</item>
<item>
<shape>
<corners android:radius="10dp" />
<gradient
android:angle="90"
android:endColor="#707070"
android:startColor="#060606"
android:type="linear" />
<stroke
android:width="0.5dp"
android:color="#2b2b2b" />
</shape>
</item>
</selector>
回答1:
Button text doesn't need padding, it is by default in center of the button.
I think you are using the android:theme="@android:style/Theme.Black.NoTitleBar"
in the manifest file, please remove it and use native app Theme and try it.
回答2:
Its not actually padding but the theme is setting a minHeight and minWidth for button widgets. You can completely remove this effect without changing your theme by setting the following on your button in the xml:
android:minHeight="0dp"
android:minWidth="0dp"
It thus also implies that you can play around with different settings for different effects, 0dp is merely an example to completely remove this effect.
回答3:
you can try using android:includeFontPadding. set it to false. also set the padding to 0.
来源:https://stackoverflow.com/questions/19226953/remove-text-padding-in-button-view