SetVisibility no funciona?
Soy nuevo en desarrollar con android. Tengo una rejilla contenida en un LinearLayout
y cada artículo que compone la rejilla es un botón. Quiero que este LinearLayout
sea invisible cuando el usuario empuja cualquiera de estos botones.
Este es mi shell de diseño "casero":
- Android: altura del diseño en porcentaje de la resolución de la pantalla
- Porcentaje de llenado de Android del diseño
- Cómo tener acceso a un elemento TextView en un BroadcastReceiver
- Android agrega ID a un diseño
- ¿Cómo clasificar el diseño de Android en una pantalla pequeña, media, grande, x-grande?
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"> <TextView/> <LinearLayout> //<-- this is the layout I want to hide <TextView/> <GridView/> </LinearLayout> </LinearLayout>
Y este es el método onClick que he configurado en MyArrayAdapter (utilizado para inflar los botones)
@Override public void onClick(View v) { View convertView = activity.getLayoutInflater().inflate(R.layout.layout_home, null); LinearLayout ll_options = (LinearLayout) convertView.findViewById(R.id.ll_options); ll_options.setVisibility(View.INVISIBLE); }
Creo que debería funcionar, pero cuando lo pruebo, no pasa nada.
He encontrado una pregunta similar, pero no resuelve mi problema.
- ¿Cómo hacer esto más eficiente?
- Android include tag - referencia de diseño no válida
- El diseño gráfico muestra la primera vista de ViewFlipper, ¿cómo ver a los demás?
- Cómo crear una actividad sin 'setContentView (R.layout.main)'
- ¿Se puede centrar un botón en RelativeLayout?
- ¿Cómo mantener algunos de los componentes fijos cuando entra el teclado blando?
- Cómo cambiar el diseño del widget de fondo mediante programación
- El diseño de notificaciones personalizadas no funciona en Android 2.3 o inferior
¿Por qué inflas un diseño aquí ?:
View convertView = activity.getLayoutInflater().inflate(R.layout.layout_home, null);
Solo haz:
View v = activity.findViewById(R.id.ll_options); v.setVisibility(View.INVISIBLE);
Crea una vista nueva que no está en la jerarquía de vista visible hasta que la agregue allí y, a continuación, ocultarla. Así que escondes algo invisible.
En su lugar, pruebe:
@Override public void onClick(View v) { findViewById(R.id.ll_options).setVisibility(View.INVISIBLE); }
Que debería funcionar la OMI. Busca la vista ll_options
dentro de la jerarquía de vista visible (global) de tu actividad y la oculta.
EDITAR:
¿Dónde está tu botón? ¿Está en el mismo archivo de disposición? Inflar un nuevo diseño y ocultar el LinearLayout allí, pero este nuevo diseño nunca se utiliza. Asegúrese de tener acceso al contenidoVista en su escucha.