2010-07-01 36 views
10

Ich versuche, die Hervorhebung von Objekten in einem GridView in Android 2.2 zu deaktivieren.Deaktivieren Android GridView Hervorhebung vollständig (Auswahl deaktivieren)

Ich fand this other answer sagen, dass ich den Selektor auf eine transparente ColorDrawable (android:listSelector="@android:color/transparent") setzen sollte, aber die Ansichten in meiner GridView sind immer noch abgeblendet, wenn ich sie auswähle.

Ich verwende nur die GridView, um statische Objekte in einem Raster anzuzeigen. Keines dieser Objekte wird ausgewählt. Wäre es besser, einfach eine Grundansicht zu verwenden und meine Bilder manuell zu zeichnen?

+0

check this out https://stackoverflow.com/questions/18415844/disable-gridview-item-onclick-and-enable-only-on-child-view – sushmita

Antwort

22

Ok, es sieht so aus, als hätte ich die Antwort gefunden.

In der Definition Ihres Adapter für die Gridview, werden Sie die folgenden Methoden außer Kraft setzen müssen:

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

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

Diese alle Elemente in Ihrem Raster verursachen nicht wählbar sein, aber es wird kommen Beseitigen Sie den Höhepunkt vollständig.

+2

Wenn Sie Kinder fokussierbar sein müssen, versuchen Sie Android: demcendantFocusability = "afterDescendants" – eveliotc

+0

danke eine Menge hier, wenn Sie benutzerdefinierte Objekte in Ihrer Liste (Ansichten ..) und überschreiben ihre onclicklistener, können Sie sie auswählen: =) perfekt :) – cV2

+0

dies deaktivieren Artikel Auswahl insgesamt – coderek

1

Gerade Set v.setOnClickListener(null);

+0

Dies ist in Ihrem Adapter.getView-Methode – jfleong

+0

ich musste noch Click-Events für das GridView bekommen, aber ich bin mir sicher, dass das in anderen Situationen funktionieren würde. – Kenny

+0

das wird eine Ausnahme erstellen – EyadMhanna

36

Für die Einzelteile zu halten klickbare Sie unter attr verwenden sollten. in Ihrem Gridview xml:

android: listSelector = "# 00000000"

Siehe auch: https://stackoverflow.com/a/2866074/928591

+2

Ich denke, das sollte die akzeptierte Antwort sein ... – Radu

+1

@Radu Diese Lösung wurde explizit in der Frage als nicht funktionierend erwähnt. – blahdiblah

+0

besser verwenden android: listSelector = "@ null" –

0

Wenn Sie den visuellen Aspekt der Auswahl nur deaktivieren möchten, können Sie tun die folgenden:

gridview.getSelector().setAlpha(0); 
Verwandte Themen