android點擊無效驗證的解決方法
背景
在寫一個東西滑動刪除列表的時候,出現(xiàn)了一個問題。我的需求是,左滑然后出現(xiàn)delete,然后點擊delete,讓該滑塊消失。
我在點列表的第一行的時候,左滑,出現(xiàn)delete,點擊刪除,ok的,完美。然后我點擊第三個,同樣左滑出現(xiàn)delete,點擊delete沒有任何反應(yīng)。
然后我再點擊第一個,又可以刪除。
模型如下:

子模型:

ps:
黑色的是最外層,藍(lán)色的是在黑塊中,然后delete區(qū)域在滑塊區(qū)?;瑒邮强刂扑{(lán)色區(qū)域的移動。
如果僅僅是這樣,我一點也不慌。出現(xiàn)了一些東西,更加我讓疑惑。delete的groupview 容器點擊是有效的,也就是藍(lán)色區(qū)域可點擊的,我用它來點擊添加item,這同樣也給我提供了線索。

在我心中產(chǎn)生了兩個個疑問:
- 為什么只有第一個可以點擊, 刪除第一個后,第二個變成了第一個,又可以刪除?
- 為什么delete 區(qū)域不可點擊,而其groupview 可以點擊?
解決
對于第一個疑問,我嘗試檢測是否綁定了,當(dāng)然不可能去調(diào)試看了,因為list嘛,都一個樣,查看xy坐標(biāo)的話,腦殼痛。
// holder.tvMsgRemindDelete 是獲取到delete對象
holder.tvMsgRemindDelete.setText("你好啊");
我將拿到的delete view,然后修改它的text。
當(dāng)然肯定是沒用的,我寫完的時候就感覺不對勁,然而還抱著一絲希望。
因為如果變成第一個的話,那么是可以點擊刪除的,肯定綁定了事件哈。
對于第二個疑問,父類groupview 可以點擊,我就猜想是否是父類的groupview 阻止了該分發(fā)事件。(一般情況是不會阻止的,然而我做的這個滑動較為復(fù)雜,自我安慰一下)
是否分發(fā)到子元素,涉及到
1. onInterceptTouchEvent
2. dispatchTouchEvent
這兩個事件,一個是分發(fā),一個是攔截。
然后找到[ACTION_DOWN,ACTION_UP]判斷事件是通過這兩個判斷的。
然后真的發(fā)現(xiàn):return inView(x, y)
ps:
inView 是我用來判斷是當(dāng)前x,y軸是否在滑塊中,也就是藍(lán)色塊中。
前面將delete放在外面,如下:

忘記改然后造成了這個問題。
總結(jié)
點擊無效的時候,不僅要查閱自身事件,同樣也需要查詢事件分發(fā)機制,看看是否哪個土匪攔截了,當(dāng)然土匪一般是自己創(chuàng)造的。
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。
相關(guān)文章
Android 破解視頻App去除廣告功能詳解及解決辦法總結(jié)
這篇文章主要介紹了Android 破解視頻App去除廣告功能詳解及解決辦法總結(jié)的相關(guān)資料,這里對視頻播放原理及破解去除廣告幾種方法進行了總結(jié),需要的朋友可以參考下2016-12-12
Android自定義View之漸變色折線圖的實現(xiàn)
折線圖的實現(xiàn)方法在github上有很多開源的程序,但是對于初學(xué)者來講,簡單一點的教程可能更容易入門,下面這篇文章主要給大家介紹了關(guān)于Android自定義View之漸變色折線圖的相關(guān)資料,需要的朋友可以參考下2022-04-04
詳解Android App中ViewPager使用PagerAdapter的方法
這篇文章主要介紹了詳解Android App中ViewPager使用PagerAdapter的方法,同時附帶了一個ViewPager的PagerAdapter不能更新數(shù)據(jù)的問題解決方法,需要的朋友可以參考下2016-03-03
React Native學(xué)習(xí)之Android的返回鍵BackAndroid詳解
這篇文章主要給大家介紹了關(guān)于React Native學(xué)習(xí)之Android的返回鍵BackAndroid的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用React Native具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起看看吧。2017-10-10
Android中使用TagFlowLayout制作動態(tài)添加刪除標(biāo)簽
這篇文章主要介紹了Android中使用TagFlowLayout制作動態(tài)添加刪除標(biāo)簽的步驟詳解,需要的朋友參考下吧2017-07-07
解決Android Studio 代碼無提示無顏色區(qū)分問題
這篇文章主要介紹了解決Android Studio 代碼無提示無顏色區(qū)分問題,需要的朋友可以參考下2018-08-08

