開發項目時,我們需要在一個popupWindow當中嵌入一個ListView。不過很奇怪的是我們的這個嵌入在PopupWindow當中的ListView不能響應對ListView當中的item裏面的點擊事件(這時我們的ListView使用是我們自己創建的BaseAdapter,這個BaseAdapter使用的一個單獨的Layout,Layout文件爲每一個ListItem設置的佈局爲一個Button).但是當我們將我們創建的Adapter改成系統自帶的ArrayAdapter,就可以很正常的響應我們的List item的點擊事件了。此時可以確定是我們的Adapter的問題,而不是PopupWindow因爲把點擊事件劫持而引發的問題了。當然我們首先想到的就是ListView當中的自定義佈局用到的是Button,button會自己截獲點擊事件的(注意在ListView當中使用Button是一個很常見的坑,除非我們十分小心才能避免).所以我們很自然的將裏面的Button改成了TextView。測試一下,OK,可以捕獲到ListView當中的點擊事件了。果然是Button的問題了。但是TextView還是有一點太醜了。然後我們繼續作,將TextView的style改成的@android:style/Widget.Button。這時我們內心一定很高興,畢竟還解決了UI方面的問題,但是我們一運行,又捕獲不到ListView當中的點擊事件了。一定是剛纔的Button的style的問題,但是我們只是改了一個Style啊。查了一些文檔才知道Button的默認style當中有一個屬性定義爲android:onclickable=”true”.我們需要將這個屬性去掉纔可以。想不到還有這個坑。改了,OK,一切正常了。
Android PopupWindow中ListView 無法接受點擊事件的處理
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
Android筆記02-真機調式
原創
2023-10-31 09:11:15
完美解決 Android 滑動衝突!
原創
2023-10-10 02:19:38
Android C++系列:Linux線程(一)概念
轻口味
2021-12-08 11:33:58
Android無障礙體驗與開發
王莹
2021-11-26 09:58:53
Android Studio 的更新
王莹
2021-11-25 10:58:57
拒絕卡頓,揭祕盒馬鮮生 APP Android 短視頻秒播優化方案
阿里巴巴移动技术
2021-11-24 10:23:56
Android 遊戲開發和結算服務的新特性
王莹
2021-11-24 09:58:54
Android TV 與 Google TV 的新特性
王莹
2021-11-24 09:53:53
Android 12L-針對大屏設備的新特性
王莹
2021-11-24 09:53:53
Android C++系列:Linux文件IO操作(一)
轻口味
2021-11-23 18:23:51
Android C++系列:JNI調用時的異常處理
轻口味
2021-11-19 10:03:53
2021 Google 開發者大會一覽,同步Android、TensorFlow、Web開發等最新動態
罗燕珊
2021-11-16 19:33:53
Jetpack Compose 佈局詳情
谷歌
2021-11-16 15:33:49