GridView設定Item的點選事件無效的解決方案
背景
介面顯示用到了gridview,然後gridview的item的itemView是一個簡單的Button。當gridview設定完adapter後,接著設定item的點選事件時發現點選item是不能觸發下面的方法。
// gridview的item的點選事件
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Log.e("onItemClick", entities.get(position).getNumber());
Toast.makeText(MainActivity.this, entities.get(position).getNumber(), Toast.LENGTH_LONG).show();
}
});
當我點選gridview中的一個子項後,並不能在控制檯上看到任何的資訊列印,也不吐絲。表明該方法沒有觸發。
問題導原因
因為itemview中的button導致,該控制元件是可點選的會遮蔽gridview的item點選事件。具體的原因這裡就不做過多的說明了,網上很多導致該問題的原因說明
解決方案首先在你的itemview的根佈局新增屬性:
android:descendantFocusability="blocksDescendants"
然後設定itemview中可點選控制元件的clickable屬性為false如下:
android:clickable="false"
問題解決圖示
上面的圖示說明觸發了gridview的item點選事件,問題得到了解決。
補充說明
這裡有一點需要額外的說明,如果你用的是自定義的view繼承了gridview然後實現一些額外的操作的時候。如果你重寫了onTouch方法的時候,記住返回的值別做改動,就返回父類的方法即可。因為有的人喜歡返回true,然後會導致即使你的itemview做了上述的變動,你還是不能夠觸發item的點選事件。為什麼呢?你點父類的方法進去可以看到父類做了一些其他的實現,並不是單單的返回true或者false而已,所以就用預設的就好。
================================================================
A little bit of progress every day!Come on!
相關推薦
popupwindow中ListView item點選事件無效的解決方案
在Popupwindow中佈局ListView後,如果popupwindow的focusable設定為false 的話,ListView的item的點選事件 出現如下情況: API < 19 :onItemClick 事件無效 API >=19:
【android】點選事件穿透解決方案
在一個佈局中使用了FrameLayout,將佈局分為上下兩層,結果在操作上層佈局空白處時,觸發了下層佈局按鈕的點選事件,解決方法如下: 在上層根佈局新增如下屬性即可 android:clickable
GridView設定Item的點選事件無效的解決方案
背景 介面顯示用到了gridview,然後gridview的item的itemView是一個簡單的Button。當gridview設定完adapter後,接著設定item的點選事件時發現點選item是不能觸發下面的方法。 // gridview的i
Android-RecyclerView-Item點選事件設定
轉載請註明出處:http://write.blog.csdn.net/postedit/40423361 在上一篇部落格Android-RecylerView初識中提到,RecyclerView不再負責Item檢視的佈局及顯示,所以RecyclerView也沒有為Item
TextView 點選事件無效的完美解決
最近在開發中遇到這麼一個問題,當使用TextView做成Button的點選事件時(在xml中使用android:onClick="click"屬性設定該TextView的點選方法),點選失去效果,不能
RecyclerView Item點選事件實現 類似GridView
RecyclerView Item點選事件實現,請看程式碼 package sample.mars.com.androidutsample.view; import android.conten
listview的item裡面有Button,並給其設定了點選事件,而且有效可點選,但是listview的item點選事件卻失效了
問題:listview的item裡面有Button,並給其設定了點選事件,而且有效可點選, 但是listview的item點選事件卻失效了 解決方案一,測試有效:android:descendantF
自定義SwipeRefreshLayout 巢狀listview 並解決item點選事件焦點衝突問題
最近專案需要實現上拉載入更多,為了不引入第三方庫,可以使用自定義SwipeRefreshLayout 來實現,作品摘自 簡書:http://www.jianshu.com/p/d23b42b6360b但是在使用的時候發現有個bug,就是當頁面顯示最後一條資料的時候 ,lis
GridView的點選事件衝突解決
在開發的時候,經常可能遇到ListView或GridView原因是Item佈局中的button或ImageButton強制獲取了item的焦點,解決方式之一是:只要設定Item佈局中的bu
AutoCompleteTextView 設定了點選事件需要點選兩下解決辦法
今天用AutoCompleteTextView 設定了點選事件為了使其彈出提示內容,但是發現需要點選兩下才會觸發OnClick事件。 在網上找到了一個辦法是換成OnTouch方法, 在Android中,onClick、onLongClick的觸發是和ACTI
Recyclerview或Listview實時重新整理,item點選事件失效的解決方法
問題場景: 本人最近在做一個關於藍芽開發的Demo,在掃描藍芽裝置的時候會產生回撥,並會返回BluetoothDevice和rssi,這個rssi就是掃描到的這個裝置的訊號。 注意,這個回撥不是搜尋到1個裝置後就只回調一次這個裝置,而是隻要掃描到了就會回
解決DialogFragment中自定義佈局的按鈕點選事件無效
在DialogFragment中如果有時會突然發現我們寫的自定義佈局的點選事件無效,如果寫在onCreateView()方法中,如果又重寫了onCreateDialog()方法,建議把控制元件的初始化和
Web丨IOS系統下Safari瀏覽器中div點選事件無效的解決辦法:
1、把 div 改換為 a、button 等具有可點選性的標籤元素,新增 curson:pointer 滑鼠樣式 2、把點選事件直接繫結到需要點選的標籤上,而不是其祖先級,儘量不要用事件委託 曾在兩個專案中適配 IOS 手機端 Safari 瀏覽器時遇
解決ListView中Item的子控制元件(比如Button)與Item點選事件衝突
經常會碰到在ListView中點選其中一個Item,會一併觸發其子控制元件的點選事件,例如Item中的Button、ImageButton等,導致了點選Item中Button以外區域也會觸發Button點選事件。在網上找了相關方法,這裡記錄下,親測可行.. 1、在Item
UIView新增手勢 然後UITableView 新增進這個View 導致UITableView 的單元格點選事件無效
#pragma -mark UIGestureRecognizerDelegate - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)tou
RecyclerView條目item點選事件---放大
Adapter–建立介面 //建立介面 public interface RecyInterface{ void vh(Viewholder viewholder); } //宣告介面名 private RecyInterface mRec
ScrollView與viewpager滑動事件衝突,與點選事情衝突解決方案
在產品適配的時候我加了ScrollView,但是產品提出了一個向上輪播需求 首先把豎直向上的viewpager粘出來: package com.cfiigroup.zhehui.hepaidai.view; import android.view.MotionEvent; impo
swiper輪播圖包在div(tab切換)下js上一頁下一頁點選事件失效解決辦法
問題: 兩種解決辦法: 解決辦法一: var mySwiper = new Swiper ('.swiper-container', { nextButton: '.swiper-button-next', p
jQuery繫結動態元素的點選事件無效
示例如下: <div> <ul id="demo"> <li>Kubernetes:下一代分散式系統的護戒使者</li> <li>機器學習工具--Pandas cheat sheet</li> <li&g
RecyclerView的Item點選事件,增加刪除Item瀑布流動畫效果,長按拖動Item,RecyclerView複雜佈局、實現新聞頻道選擇器
RecyclerView的Item點選事件的實現,增加和刪除Item使用瀑布流動畫效果,長按拖動Item,RecyclerView複雜佈局的實現使用、RecyclerView去實現今日頭條新聞頻道選擇器。 使用ItemTouchHelper實現Item的拖動交換,由於Recy