用listview的時候,上面放了button會搶焦點,只要設置enabled爲false就行,不過若是上面加了多選按鈕,你就會發現哪怕設置enabled爲false也不行,這就須要。在你的adapter的佈局文件的最高根控件設置這個 android:descendantFocusability=blocksDescendants android
這時候就能夠使用descendantFocusability來解決啦,API描述以下:
該屬性是當一個爲view獲取焦點時,定義viewGroup和其子控件二者之間的關係。 佈局
屬性的值有三種: spa
beforeDescendants:viewgroup會優先其子類控件而獲取到焦點 翻譯
afterDescendants:viewgroup只有當其子類控件不須要獲取焦點時才獲取焦點 事件
blocksDescendants:viewgroup會覆蓋子類控件而直接得到焦點 文檔
一般咱們用到的是第三種,即在Item佈局的根佈局加上android:descendantFocusability=」blocksDescendants」的屬性就行了,至此listview點擊的靈異事件告一段落。心得:遇到不會不懂的地方除了網上查詢資料以外,也能夠多多去嘗試每種屬性的做用,多閱讀官方文檔(我始終以爲仍是讀原文的比翻譯的理解的會更好)。 it