J'essaie de désactiver la mise en surbrillance d'objets dans un GridView sous Android 2.2. Je trouve this other answer disant que je devrais définir le sélecteur sur un ColorDrawable transparent (android:listSelector="@android:color/transparent"
), mais les vues de mon GridView sont toujours grisées quand je les sélectionne. Je n'utilise que GridView pour afficher des objets statiques dans une grille. Aucun de ces objets ne sera sélectionné. Serait-il préférable d'utiliser simplement une vue de base et de dessiner mes images manuellement?Désactiver complètement la mise en surbrillance d'Android GridView (désactiver la sélection)
Répondre
Ok, il semble que j'ai trouvé la réponse.
Dans la définition de votre adaptateur pour le GridView, vous devrez remplacer les méthodes suivantes:
@Override
public boolean areAllItemsEnabled()
{
return false;
}
@Override
public boolean isEnabled(int position)
{
return false;
}
Cela entraînera tous les éléments dans votre grille pour être non sélectionnable, mais il obtiendra débarrasser de la surbrillance complètement.
Si vous avez besoin que les enfants soient focalisables, essayez android: descendantFocusability = "afterDescendants" – eveliotc
merci beaucoup ici, si vous avez des objets personnalisés dans votre liste (vues ..) et écraser leur onclicklistener, vous pouvez les sélectionner: =) parfait :) – cV2
cela désactiver complètement la sélection de l'article – coderek
Juste Set v.setOnClickListener(null);
Ceci est dans votre méthode Adapter.getView – jfleong
I encore besoin d'être en mesure d'obtenir des événements de clic pour le GridView, mais je suis sûr que cela fonctionnerait dans d'autres situations. – Kenny
cela va créer une exception – EyadMhanna
Pour garder les éléments cliquables ci-dessous, vous devez utiliser attr. dans votre GridView xml:
android: listSelector = "# 00000000"
Voir aussi: https://stackoverflow.com/a/2866074/928591
Je pense que cela devrait être la réponse acceptée ... – Radu
@Radu Cette solution a été explicitement mentionnée dans la question comme ne fonctionnant pas. – blahdiblah
mieux utiliser android: listSelector = "@ null" –
Si vous voulez juste désactiver l'aspect visuel de la sélection, vous pouvez faire les éléments suivants: contrôle
gridview.getSelector().setAlpha(0);
ceci https://stackoverflow.com/questions/18415844/disable-gridview-item-onclick-and-enable-only-on-child-view – sushmita