@schwiz, ¿cómo podemos restablecer la identificación de la vista en este caso? Mi problema es incluso después de que mi actividad finaliza cada vez que se agrega la siguiente vista, la identificación de la vista se incrementa. Quiero que la identificación de la vista esté predeterminada en 1 cuando vuelva a esta actividad nuevamente .
AndroidNewBee
Muchas gracias por dar esta respuesta
dobladillo
ViewGroup amplía View implementa ViewParent, ViewManager. es mejor llamarlo con casting a (ViewGroup)
Mercury
23
Use ViewStub y especifique el diseño de la vista que desea alternar. Para ver:
Si desea ocultar / mostrar, puede usar .setVisibility (View.INVISIBLE) y .setVisibility (View.VISIBLE). Cuando la vista es invisible, el usuario no puede interactuar con ella.
dennisschagt
Digamos que tengo un textView con un onClickListener adjunto. Si lo hago desaparecer y luego lo toco, ¿se activará el evento?
ahitt6345
22
Esta es la mejor manera
LinearLayout lp =newLinearLayout(this);
lp.addView(newButton(this));
lp.addView(newImageButton(this));// Now remove them
lp.removeViewAt(0);// and so on
Si tiene un diseño xml, no es necesario agregar dinámicamente, solo llame
¿Cuál será la diferencia en términos de rendimiento? Me refiero a la diferencia de rendimiento de agregarlos dinámicamente o ponerlos en un archivo de diseño xml estático y dejar que se infle.
salida
19
Para agregar vista a un diseño, puede usar el addViewmétodo de la ViewGroupclase. Por ejemplo,
También hay varios métodos de eliminación. Consulte la documentación de ViewGroup . Una forma sencilla de eliminar la vista de un diseño puede ser como,
layout.removeAllViews();// then you will end up having a clean fresh layout
Solucionó mi problema, más que cualquier otra respuesta. Útil si como yo, tu fondo o algunos parámetros impiden que la vista desaparezca por completo.
Virthuss
1
se debe a que View.GONE no elimina la vista del diseño, solo la hace invisible y no ocupa espacio para fines de diseño.
Victor
6
Gran respuesta de Sameer y Abel Terefe. Sin embargo, cuando elimina una vista, en mi opción, desea eliminar una vista con cierta identificación. Así es como se hace.
1, asigne una identificación a la vista cuando la cree:
Respuestas:
Lo he hecho así:
fuente
(ViewGroup)
:)Use ViewStub y especifique el diseño de la vista que desea alternar. Para ver:
Desaparecer:
fuente
Esta es la mejor manera
Si tiene un diseño xml, no es necesario agregar dinámicamente, solo llame
fuente
Para agregar vista a un diseño, puede usar el
addView
método de laViewGroup
clase. Por ejemplo,También hay varios métodos de eliminación. Consulte la documentación de ViewGroup . Una forma sencilla de eliminar la vista de un diseño puede ser como,
fuente
Para cambiar la visibilidad:
Para eliminar:
fuente
Gran respuesta de Sameer y Abel Terefe. Sin embargo, cuando elimina una vista, en mi opción, desea eliminar una vista con cierta identificación. Así es como se hace.
1, asigne una identificación a la vista cuando la cree:
2, elimine la vista con la identificación:
fuente
puedes usar addView o removeView
Java:
kotlin:
fuente
hola, si es nuevo en Android, use de esta manera Aplique su vista para que desaparezca. método y eliminar todos los niños parentView.remove (child)
Sugeriría usar el enfoque GONE ...
fuente
Estoy eliminando la vista usando el método de inicio y conteo, he agregado 3 vistas en diseño lineal.
view.removeViews (0, 3);
fuente
Solución de extensión reutilizable Kotlin
Simplifique la eliminación
Agrega esta extensión:
Simplificar la suma
Aquí hay algunas opciones:
fuente