2010-07-01 12 views
10

Estoy tratando de deshabilitar el resaltado de objetos en un GridView en Android 2.2.Desactivar Android GridView resaltando por completo (deshabilitar la selección)

Encontré this other answer y dije que debería establecer el selector en un ColorDrawable transparente (android:listSelector="@android:color/transparent"), pero las vistas en mi GridView todavía están atenuadas cuando las selecciono.

Estoy usando GridView para mostrar objetos estáticos en una cuadrícula. Ninguno de estos objetos será seleccionado. ¿Sería mejor usar una vista básica y dibujar mis imágenes manualmente?

+0

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

Respuesta

22

Ok, parece que encontré la respuesta.

En la definición de su Adaptador para el GridView, que tendrá que reemplazar los métodos siguientes:

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

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

Esto hará que todos los elementos de la rejilla a ser no seleccionable, pero conseguirá deshacerse de lo más destacado por completo.

+2

Si necesita que los niños sean enfocables intente con android: descendantFocusability = "afterDescendants" – eveliotc

+0

gracias mucho aquí, si tiene objetos personalizados en su lista (vistas ...) y sobrescribe su onclicklistener, puede seleccionarlos: =) perfecto :) – cV2

+0

esto deshabilita la selección de elementos por completo – coderek

1

Sólo Set v.setOnClickListener(null);

+0

Esto está en su método Adapter.getView – jfleong

+0

I Todavía necesitaba poder hacer clic para GridView, pero estoy seguro de que eso funcionaría en otras situaciones. – Kenny

+0

esto creará una excepción – EyadMhanna

36

Para mantener los elementos interactivos que debe utilizar a continuación attr. en su xml GridView:

androide: listSelector = "# 00000000"

Ver también: https://stackoverflow.com/a/2866074/928591

+2

Creo que esta debería ser la respuesta aceptada ... – Radu

+1

@Radu Esta solución se mencionó explícitamente en la pregunta como no funciona. – blahdiblah

+0

mejor uso android: listSelector = "@ null" –

0

Si lo que desea es desactivar el aspecto visual de la selección, puede hacer lo siguiente:

gridview.getSelector().setAlpha(0); 
Cuestiones relacionadas