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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章