Android中Button设置drawablePadding没效果和设置selector后按下时没效果

第一个问题:

drawablePaddingdrawableLeft同时设置,但是UI上没有任何的效果:

Button XML如下:

            <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:drawableLeft="@drawable/rc_switch"
            android:background="@drawable/btn_bg"
            android:drawablePadding="12dp"
            android:text="@string/rc_disconnect"
            android:textSize="12sp"
            />

效果:


很诡异的问题,后来stackoverflow找到说是因为button太大了,设置就不起作用,如果button比较小,设置才会起作用。验证居然也真是这样。

那么解决方式就是在Button外面包一层:

 <LinearLayout
        android:id="@+id/rc_disconnect"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/btn_bg"
        android:gravity="center"
        android:layout_gravity="center"
        android:focusable="true"
        android:clickable="true" >

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:focusable="false"
            android:clickable="false"
            android:background="@android:color/transparent"
            android:drawableLeft="@drawable/rc_switch"
            android:drawablePadding="12dp"
            android:text="@string/rc_disconnect"
            android:textSize="12sp" />
    </LinearLayout>


改后的效果:


第二个问题:设置了selector,按下后却没任何效果:

xml如下:



这里的顺序还是有讲究的,有包含的关系。把最小的写在上面。

修改为如下便可以了:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值