Android中Button的默认高度问题

闲来无事,瞅着自己的app不是很顺眼,想把一个经常用到的按钮调得窄一点。


想着是件很简单的事情,这不换一个窄一点的背景图不就行了吗?可是事与愿违,我让UI帮我切了好几张更窄的图放进去,可是完全不起作用,于是我把矛头指向了UI妹子,埋怨了UI妹子一通微笑。然后着手自己写一个shape出来,万万没想到,不管我怎么调整,这个按钮还是那么粗。下面贴出我的Button和XML代码

<Button
        android:textSize="18sp"
        android:textColor="@color/white"
        android:text="完成"
        android:id="@+id/complete"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginLeft="30dp"
        android:layout_marginRight="30dp"
        android:layout_marginTop="60dp"
        android:background="@drawable/button_red" />
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- 圆角 -->
    <corners android:radius="5dp" /><!-- 设置圆角半径 -->

    <!-- 大小 -->
    <size android:width="320dp" android:height="5dp"/><!-- 宽度和高度 -->

    <!-- 填充 -->
    <solid  android:color="@color/red"/><!-- 填充的颜色 -->

</shape>

这一定是灵异事件,于是我打开了另一个app求证,果然是灵异事件,另一个app的高度想怎么调就怎么调!但是冷静下来想一想,到底是为什么呢?思前想后发现两个app的主题不一样

<style name="AppBaseTheme" parent="Theme.AppCompat.Light.NoActionBar"></style>
<style name="AppBaseTheme" parent="android:Theme.Light"></style>

果真如此,我把主题换为android:Theme.Light高度就可以随意调整,于是翻了翻Theme.AppCompat.Light.NoActionBar的源码,原来当前主题下Button有默认最小高度和宽度的设置

 <style name="Base.Widget.AppCompat.ActionButton" parent="RtlUnderlay.Widget.AppCompat.ActionButton">
        <item name="android:background">?attr/actionBarItemBackground</item>
        <item name="android:minWidth">@dimen/abc_action_button_min_width_material</item>
        <item name="android:minHeight">@dimen/abc_action_button_min_height_material</item>
        <item name="android:scaleType">center</item>
        <item name="android:gravity">center</item>
        <item name="android:maxLines">2</item>
        <item name="textAllCaps">@bool/abc_config_actionMenuItemAllCaps</item>
    </style>

想要去掉默认限制,只需要设置android.minHeight为0,但是需要一个一个修改Button的属性。另一种方案是修改app的主题,选择以android:Theme开头的主题即可



猜你喜欢

转载自blog.csdn.net/bug_bug_chen/article/details/80183926