2010-07-01 81 views
10

我試圖禁用Android 2.2中的GridView中的對象突出顯示。完全禁用Android GridView突出顯示(禁用選擇)

我發現this other answer說我應該將選擇器設置爲透明的ColorDrawable(android:listSelector="@android:color/transparent"),但當我選擇它們時,GridView中的視圖仍然變暗。

我只是使用GridView在網格中顯示靜態對象。這些對象都不會被選中。使用基本視圖並手動繪製我的圖像會更好嗎?

+0

檢查了這一點 https://stackoverflow.com/questions/18415844/disable-gridview-item-onclick-and-enable-only-on-child-view – sushmita 2015-02-05 05:26:00

回答

22

好吧,它看起來像我找到了答案。

在適配器爲GridView的定義,你將不得不重寫以下方法:

@Override 
public boolean areAllItemsEnabled() 
{ 
    return false; 
} 

@Override 
public boolean isEnabled(int position) 
{ 
    return false; 
} 

這將導致所有的項目在您的網格是不可選擇的,但它會得到完全擺脫了重點。

+2

如果你需要孩子的要成爲焦點的嘗試安卓descendantFocusability =「afterDescendants」 – eveliotc 2011-01-30 17:46:42

+0

感謝在這裏很多,如果你有自定義對象在你的列表(視圖..)並覆蓋他們的onclicklistener,你可以選擇它們:=) 完美:) – cV2 2011-12-19 16:41:56

+0

這個禁用項目選擇一共 – coderek 2013-08-14 07:27:34

1

只是Set v.setOnClickListener(null);

+0

這是在你的Adapter.getView方法 – jfleong 2010-08-30 19:39:34

+0

我仍然需要能夠獲取GridView的點擊事件,但我相信這可以在其他情況下工作。 – Kenny 2010-08-31 12:10:28

+0

這將創建一個例外 – EyadMhanna 2015-08-26 15:09:19

36

爲了保持你可點擊下面應該ATTR使用的項目。在你的GridView的xml:

機器人:listSelector = 「#00000000」

參見: https://stackoverflow.com/a/2866074/928591

+2

我認爲這應該是被接受的答案...... – Radu 2013-04-19 09:26:51

+1

@Radu這個解決方案在問題中被明確提及爲不工作。 – blahdiblah 2013-11-26 23:26:00

+0

更好用android:listSelector =「@ null」 – 2015-02-05 17:46:17

0

如果你只是想禁用選擇的視覺效果,你可以做以下內容:

gridview.getSelector().setAlpha(0);