android中ListView的Iterm无法点击

碰到个问题,当listview中同时出现Button或者ImageButton时,只有item中的Button或ImageButton能够获取焦点(能点击),而整个item无法获取焦点(无法点击)

原因:
因为ImageButton在初始化时把自己设置成setFocusable(true),这样,listView就获取不到焦点。
代码:

public ImageButton(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        setFocusable(true);
}

参考资料:
http://dev.10086.cn/cmdn/wiki/index.php?doc-view-6560.html

“这里还要强调一下:当xml中注册多个 View的时候,当我们点击按键之后,Android会先判定哪个View setFocusable(true)设置焦点了,如果都设置了,那么Android 会默认响应在xml中第一个注册的view ,而不是两个都会响应。”

所以在item中使用Button或ImageButton时需要留意这个

setFocusable(true)

方法、如果item无法响应点击,可以尝试给Button或ImageButton设置

setFocusable(false)

你可能感兴趣的:(android,button,item,焦点,无法点击)