安卓 ListView设置某一项不可以点击

 我来答
丨西门丨吹牛丨
2015-09-02
知道答主
回答量:4
采纳率:0%
帮助的人:3873
展开全部
背景变暗是发生在子View(你所说的不可点击那项)的onTouchEvent()函数的ACTION_DOWN事件分支里面(就是点下去那下)。ListView是一个ViewGroup,点击某一项时,ACTION_DOWN事件的传递顺序是:①ListView的dispatchTouchEvent() =>②ListView的OnTouchListener => ③某一项View的dispatchTouchEvent() => ④某一项的OnTouchListener => ⑤某一项View的onTouchEvent => ⑥ListView的onTouchEvent()。背景变暗就是发生在⑤中,只要在此之前的几个函数拦截到就行了。如果你知道怎么重载函数那现在肯定明白了。
不懂的话你就给不可点击的那个按钮上设一个setOnTouchListener(注意不是setOnClickListener()),在这个listener中返回true(默认是false),这就是在④那一步拦截了。OnClickListener监听到的是从手指按下到抬起来整个过程,背景在按下去那下就设置了,所以不行。 楼上那个朋友说的重载载Adapter的isEnable()函数让它判断如果是不可点击那项则返回false也行。
shangQQ2
推荐于2018-03-13
知道答主
回答量:3
采纳率:100%
帮助的人:3593
展开全部
在BaseAdapter重写boolean isEnabled(int position)。根据不同位置返回不同值。亲测有效
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5d16e95
2014-05-23 · TA获得超过181个赞
知道小有建树答主
回答量:66
采纳率:0%
帮助的人:77.2万
展开全部
你在onItemClickListener里面判断,如果position等于你不想有点击事件的那一项,就直接return不响应点击事件即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阿莱来访
2014-05-13 · 超过37用户采纳过TA的回答
知道小有建树答主
回答量:90
采纳率:0%
帮助的人:83万
展开全部
Adapter用的是继承BaseAdapter的方式吗?
更多追问追答
追问
是的
追答
那在getView中不是有一个convertView吗,它就是ListView的每一个条目的view,如果你想让某一项不可点击,那根据你的条件(比如:position == 5之类的)判断一下,如果满足就设置convertView.setClickeable(false);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式