2012-01-05 21 views
7

En mi aplicación, estoy agregando la vista dinámicamente al diseño lineal. cada vista consiste en un botón si haces clic en eso y luego se eliminará la vista. Cómo refrescar el diseño lineal? porque cuando eliminé cualquier vista, las posiciones de la vista cambiarán.android: cómo eliminar la vista del diseño lineal

Respuesta

10

Para eliminar cualquier punto de vista se puede utilizar

ll.removeView(view)// to remove particular view 
ll.removeViewAt(position);// to remove view from particular position 

Uso siguiente lógica para eliminar cualquier punto de vista del diseño

ll.post(new Runnable() { 
    public void run() { 
     ll.removeView(view); 
    } 
}); 
+1

por qué no usó 'removeAllViews()' de esta manera: ll.removeAllViews(); – NrNazifi

4

Su pregunta no está tan clara. Pero podría intentar configurar la vista como visibilidad = ida.

0

Did se trató

setContentView(R.layout.main); 

después de quita?

+0

oh, olvidó que la creación de elementos dynamicaly – quux

0

Cómo actualizar el diseño lineal?

linearLayoutObject.invalidate() 

Cómo quitar el elemento de la disposición lineal?

linearLayoutObject.removeView(View view); 

o

linearLayoutObject.removeViewAt(int index); 

espero que ayude ..

+0

Por favor, dejar de sugerir modificaciones en el que "arreglar" enlaces. Reemplazar el texto del enlace con "Link1" o algo similar es una edición terrible, y está haciendo un trabajo para las personas que tienen que arreglarlo. Vea mi edición de cómo se supone que los enlaces * realmente * se supone que funcionan: http://stackoverflow.com/q/8741270/229044 – meagar

2

eliminando o añadiendo ve el LinearLayout tiene que medir y disponer todos sus hijos de nuevo por lo que se mueven. Simplemente podría intentar configurar la visibilidad a invisible.

myLinearLayout.setVisibility(View.INVISIBLE); 

cualquier vista establecida en invisible aún conserva su tamaño y posición en el diseño, pero ya no se puede ver.

0

utilice listview con Adapter para rellenar los datos dinámicamente (porque para eso están hechos) y siempre que sus datos o UI se cambien cree un nuevo adaptador (conjunto de datos) y notifique al adaptador sobre el cambio.

0

simplemente utilizar linearLayout.removeView (Ver vista); Actualizaría automáticamente.

0

layout.removeAllViewsInLayout(); layout.invalidate();

espero que esto ayuda

Cuestiones relacionadas