碰到個問題,當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)