永发信息网

如何禁止listview的item项获得焦点,而让item的子控件获得焦点

答案:2  悬赏:60  手机版
解决时间 2021-02-14 21:05
如何禁止listview的item项获得焦点,而让item的子控件获得焦点
最佳答案
其实与item相关的设置在配置文件里面虽然没有,但是代码里还是有的,如下:
listView.setItemsCanFocus(true); //设置item项的子控件能够获得焦点(默认为false,即默认item项的子空间是不能获得焦点的)
通过这一行代码即可实现以上需求,另外,关于焦点的传递大家有兴趣的话可以自行查看源码。

补充:如果没有出现左图的获得焦点高亮效果,可能有以下原因:
1,ImageView默认不能获得焦点,应该设置属性为:android:focusable="true" (如果是ImageButton或Button等则不需要设置,他们默认是可以获得焦点的)
2,没有为该ImageView设置自定义drawable图片的的selector(该ImageView其实已经获得焦点了,只是没有看出来而已)。
全部回答
默认的情况下,是listview的item自身获得了焦点(如上图右),也就是说listview的item获得焦点后,没有传递给子控件或者子控件默认不能获得焦点。 这时候我们可能会想到在布局文件里设置listview的descendantfocusability属性(焦点传递性):android:descendantfocusability="afterdescendants" 然而无论设置其值为afterdescendants还是beforedescendants或blocksdescendants都没有达到想要的效果。 接下来我们可能会继续寻找listview是否有以item为关键字的相关属性,结果很遗憾,找遍了所有属性都没有item相关的关键字。 其实与item相关的设置在配置文件里面虽然没有,但是代码里还是有的,如下: listview.setitemscanfocus(true); //设置item项的子控件能够获得焦点(默认为false,即默认item项的子空间是不能获得焦点的) 通过这一行代码即可实现以上需求,另外,关于焦点的传递大家有兴趣的话可以自行查看源码。 补充:如果没有出现左图的获得焦点高亮效果,可能有以下原因: 1,imageview默认不能获得焦点,应该设置属性为:android:focusable="true" (如果是imagebutton或button等则不需要设置,他们默认是可以获得焦点的) 2,没有为该imageview设置自定义drawable图片的的selector(该imageview其实已经获得焦点了,只是没有看出来而已)。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
分析秦汉陶俑《杂技俑盘》
国家电网荣成电业总公司崂山营业所地址在哪,
发光二极管与电阻怎样串联
( )是当代信用关系中的主体和基本形式。A.
开一家数码产品 和手机一起卖的店需要投资多
如果你男朋友在外人面前故意装作不认识,却在
太阳雨太阳能(博浪沙街店)地址在什么地方,想
广香阁烧腊店我想知道这个在什么地方
斗罗同人文bg
文成县林业局在什么地方啊,我要过去处理事情
纯合的高茎豌豆与矮茎豌豆杂交,F1自交,F2中
铂金可以卖吗?
考研要提前联系导师吗
和谐空间地址在哪,我要去那里办事
我把自己女朋友宠坏了,现在她只要一不顺心就
推荐资讯
张氏男孩 辈在清字辈上,求起名,谢谢了
以下属于美术作品的是()。A.模型B.绘画C.雕
我要换什么东西能让电脑运行速度更快
梦见自己是皇上
我住在广州市荔湾区中山八路附近,请问哪里有
丹鹤社区居委会地址好找么,我有些事要过去
平铝铝材专卖店玉林总代理在什么地方啊,我要
黄兴镇卫生院地址在什么地方,想过去办事
科冕路地址在什么地方,想过去办事
请问这份肌电图报告是哪里出了问题 是神经损
我通过在农业银行了解有一种理财,存五万一年
男孩叫高子涵好听吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?