¿Cómo se ocultan varias vistas al mismo tiempo?
Tengo una vista relativa de la disposición, y 3 opiniónes de los niños también. Estoy intentando esconderlos todos en código fijando la disposición relativa a INVISIBLE usando setVisibility. Lo curioso es que cuando uso setVisibility (View.INIVISIBLE) sólo el primer hijo está oculto, no los otros dos. Así que estoy un poco confundido – si establezco una vista de padres a invisible no debería cambiar la visibilidad de todos los niños o dejarlos solos?
Siéntase libre de señalarme una página de referencia que lo explique – no puedo encontrar nada.
- Cómo hacer que un método View invisible / Gone onBackPressed () en android
- Android ScrollView se desplaza a la parte superior después de llamar a setVisibility (View.VISIBLE) en la vista secundaria
- Android: ListView me dice que está poblado pero no muestra elementos
- ¿Cómo mostrar / ocultar vistas agrupadas en Android?
- TabLayout text desaparece cuando la visibilidad va de GONE a VISIBLE
Actualización: He intentado establecerlo en View.GONE, pero sucede lo mismo, excepto que los dos niños que permanecen visibles suben un poco.
Aquí está el XML relevante:
<RelativeLayout android:id="@+id/optionsform" android:layout_width="fill_parent" android:padding="8dp" android:layout_height="wrap_content" > <TextView android:id="@+id/tvoptions" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:text="@string/tvoptions" android:textColor="#f000" android:textAppearance="?android:attr/textAppearanceMedium" android:textStyle="bold"/> <TextView android:id="@+id/tvdictionary" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/tvoptions" android:layout_marginLeft="30dp" android:layout_marginTop="16dp" android:text="@string/dictionary" android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="#f000" /> <Spinner android:id="@+id/dictionary" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@+id/tvdictionary" android:layout_alignParentRight="true" android:layout_marginTop="-10dp" android:layout_marginLeft="6dp" android:layout_toRightOf="@+id/tvdictionary" /> </RelativeLayout>
Y aquí está el código relevante que estoy usando:
public void onClick(View v) { //Toggle viewing of options, using "if" in case it is set to View.GONE View view = findViewById(R.id.optionsform); if (view.getVisibility() == View.VISIBLE) view.setVisibility(View.INVISIBLE); else view.setVisibility(View.VISIBLE); }
- ¿Por qué no funciona setVisibility después de animar una vista?
- Un botón con el comentario que ya ha hecho clic no se mostrará la próxima vez que el usuario abra la aplicación
- Cómo usar visible e invisible para un botón en android
- ¿Cómo comprobar la visibilidad del teclado del software en Android?
- Cómo ocultar la barra de progreso en Android?
- MvvmCross Android problema de enlace en el convertidor de visibilidad
Intente establecer las tres vistas en View.INVISIBLE
o View.GONE
.
O
Puedes probar
public void onClick(View v) { //Toggle viewing of options, using "if" in case it is set to View.GONE RelativeLayout view = (RelativeLayout) findViewById(R.id.optionsform); if (view.getVisibility() == View.VISIBLE) view.setVisibility(View.INVISIBLE); else view.setVisibility(View.VISIBLE); }
Debe establecer en el estado View.GONE
.
<TextView android:id="@+id/tvdictionary" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" **android:layout_below="@+id/tvoptions"** // *should be android:layout_below="@id/tvoptions* android:layout_marginLeft="30dp" android:layout_marginTop="16dp" android:text="@string/dictionary" android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="#f000" /> <Spinner android:id="@+id/dictionary" android:layout_width="wrap_content" android:layout_height="wrap_content" **android:layout_alignTop="@+id/tvdictionary"** // *should be android:layout_alignTop="@id/tvdictionary* android:layout_alignParentRight="true" android:layout_marginTop="-10dp" android:layout_marginLeft="6dp" android:layout_toRightOf="@+id/tvdictionary"// *should be android:layout_toRightOf="@id/tvdictionary* />
@id se utiliza al referenciar la ID del diseño
@ + Id se utiliza al crear un nuevo ID de diseño
Resuelto. Un desinstalar a continuación, instalar la aplicación en mi dispositivo Android hizo el truco. Me cuidaré de eso en el futuro