Android开发点点滴滴——一些基础的但实用的知识(2)

1.onItemLongClick和onItemClick事件截取

当须要同一时候获得一个listview的条目长按事件(onItemLongClick)和点击事件(onItemClick)时,仅仅须要在onItemLongClick事件触发函数中,return true就可以。


2.自己定义CheckBox样式

在布局文件里,添加一个属性 android:button,话不多说,直接上代码

  <CheckBox
                        android:id="@+id/xxx"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginRight="5dp"
                        android:button="@drawable/checkbox_selector"
                        android:text="xxx" 
                       />
checkbox_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_checked="true"
        
        android:drawable="@drawable/checkbox_selected_selector"/>
    <item android:state_checked="false"
        android:drawable="@drawable/checkbox_blank_selector"/>

</selector>
checkbox_selected_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_pressed="true"
        
        android:drawable="@drawable/checkbox_ya"/>
    <item android:state_pressed="false"
        android:drawable="@drawable/checkbox_yz"/>

</selector>
checkbox_blank_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_pressed="true"
        
        android:drawable="@drawable/checkbox_wa"/>
    <item android:state_pressed="false"
        android:drawable="@drawable/checkbox_wz"/>

</selector>


3.ListView的Item中有button或checkBox时焦点问题

当自己定义ListView时,每一个Item上除了文字以为还有Button组件或其它也能够点击的组件时(一般就是button和checkbox),当点击这个item时可能没有反应,这是由于焦点被button组件获得了,那么点击item时,事实上是相当于点击了button组件。

解决方法:在item的根布局中增加 

android:descendantFocusability="blocksDescendants"


还有方法就是在button组件中增加

android:focusable="false"




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值