Adición de animación a una vista de lista en Android
Quiero animar los elementos de la vista de lista. En el presente, estoy aplicando la animación de transición en los elementos de la lista cada vez que se agregan nuevos elementos. Pero esta no es la animación que quiero lograr. Quiero que cuando se añada un nuevo elemento en la vista de lista en ese momento, toda la vista de lista mueva un lugar hacia abajo para dar paso al elemento recién agregado.
Actualmente el código que estoy usando es:
- FlipAnimation causando problemas en 4.4.3
- Botón en ViewPager desplazarse a la página específica
- Cómo cambiar un diseño de altura como animación (mediante programación)
- Cambiar el tamaño de los diseños de forma programática (como animación)
- Explosion animación de una vista en android
set = new AnimationSet(true); animation = new AlphaAnimation(0.0f, 1.0f); animation.setDuration(50); set.addAnimation(animation); animation = new TranslateAnimation( Animation.RELATIVE_TO_SELF, 0.0f,Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, -1.0f,Animation.RELATIVE_TO_SELF, 0.0f ); animation.setDuration(150); set.addAnimation(animation); LayoutAnimationController controller = new LayoutAnimationController(set, 1.0f); l.setLayoutAnimation(controller); l.setAdapter(listAdaptor);
Y luego al agregar elementos a través del botón onClick
l.startLayoutAnimation();
Cualquier otra sugerencia para lograr tal animación.
- Cómo girar / voltear androide imageView?
- ¿Cómo puedo mover un cuadro de diálogo de Android en un clic?
- Cómo generar la animación de bucle con ViewPropertyAnimator?
- Elemento compartido animación entre RecyclerView elemento y CollapsingToolbar dentro de la misma actividad
- Un espacio vacío muestra después de la animación translationY
- Android "deslizar de izquierda a derecha para eliminar", gesto en el elemento de lista, estilo ICS
- ObjectAnimator usando setters de CharSequence
- animateLayoutChanges no animar la eliminación de la flecha hacia atrás desde la barra de herramientas
Tengo la solución a esto. Animo cada elemento agregado en el método getView de mi adaptador personalizado.
public View getView(int position, View convertView, ViewGroup parent) { View v = convertView; if (v == null) { LayoutInflater vi = (LayoutInflater) getActivity() .getSystemService(Context.LAYOUT_INFLATER_SERVICE); v = vi.inflate(R.layout.simple_list_item_1, null); } ListData o = list.get(position); TextView tt = (TextView) v.findViewById(R.id.toptext); tt.setText(o.content); Log.d("ListTest", "Position : "+position); if(flag == false) { Animation animation = AnimationUtils.loadAnimation(getActivity(), R.anim.slide_top_to_bottom); v.startAnimation(animation);} return v; }
Y así logró la animación como yo había dicho.