为了账号安全,请及时绑定邮箱和手机立即绑定

解决ListView中Item和Item中控件的关系

标签:
Android

默认情况下,ListView中适配器为BaseAdapter为例,默认情况下Item点击之后没有任何效果,原因是在点击Item的时候获取的焦点是子控件,为了解决这问题只需要在Item的根布局写上 android:descendantFocusability=""

beforeDescendants:ViewGroup会优先与子控件获取焦点

afterDescendants:VIewGroup会在子控件不需要获取的焦点的时候获取焦点

blocksDescendants:ViewGroup会覆盖子控件而获取焦点

经过测试,当不设置或者设置为beforeDescendants或afterDescendants的时候,只需要将子控件的android:focusable="false"设置为false即可实现,更简便的方法就是设置blocksDescendants即可。

注: lv.setOnItemSelectedListener(new OnItemSelectedListener() {

@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub
}
});

此事件在触屏手机上不适用,只有在硬键盘的模拟器上才能触发。(模拟器打开硬键盘的方法在.android/avd/iPhone.avd/config.ini配置文件将hw.dPad置为yes即可)

原文链接:http://www.apkbus.com/blog-523232-59358.html

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消