2010-12-30 13 views
5

Tengo una actividad con un botón "Agregar" y "Eliminar".¿Cómo inflar una vista en una posición determinada?

El "botón Agregar" infla una vista, el "botón Eliminar" elimina una vista seleccionada.

Cuando infla una vista con el "botón Agregar", se dibuja automáticamente debajo de cualquier vista infaltada previamente.

me gustaría dar al usuario la posibilidad de mover cada vista inflado arriba y hacia abajo, por lo que podría cambiar el orden en que se muestran en la pantalla (en una especie de arrastrar y soltar del efecto)

+---------------------+  +---------------------+ 
| +-----------------+ |  | +-----------------+ | 
| |  View 1  | |  | |  View 2  | | 
| +-----------------+ |  | +-----------------+ | 
|      | --> |      | 
| +-----------------+ |  | +-----------------+ | 
| |  View 2  | |  | |  View 1  | | 
| +-----------------+ |  | +-----------------+ | 
+---------------------+  +---------------------+ 

¿Es posible especificar la "posición" en la que cada vista está inflada? (por ejemplo, ¿debajo o encima de la vista seleccionada actualmente?)

Si no, ¿cuál es la mejor manera de lograr el efecto deseado?

(no dude en solicitar cualquier pieza de código, si usted piensa que podría ayudar)

+2

:) buen arte! hombre –

Respuesta

10

Su punto de vista se ve como una línea vertical LinearLayout. Por lo que recomiendo que utilice algo como:

View v = inflater.inflate(R.layout.XXXX, null); 
yourLinearLayout.addView(v, INDEX, new LinearLayout.LayoutParams(...) 

utilizando el índice (es necesario determinar de alguna manera) se podía controlar la posición. LinearLayout es una clase secundaria de ViewGroup, por lo que el método está disponible.

Docs:

Cuestiones relacionadas