Animar cada elemento de ListView al mostrar
Estoy tratando de mostrar listments de vista de una manera que cada uno de ellos anima y luego se vuelven visibles, así que después de uno por uno animar y obtener visibles para el usuario. Pero cuando implementé la animación, su no trabajando en el elemento individual, pero trabajando en el listview entero 🙁
public View getView(final int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub LayoutInflater layoutInflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); View row =layoutInflater.inflate(R.layout.categories_row, parent, false); tvCatName = (TextView) row.findViewById(R.id.tvCatName); tvCatName.setText(Data.alCategoriesModels.get(position).catname); row.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub Toasts.pop(activity, "Category id : " + Data.alCategoriesModels.get(position).catID); } }); // row.setAnimation(animation); row.startAnimation(animation); return row; }
- Cursoradapter con diferentes diseños de filas
- Android RelativeLayout fill_parent comportamiento inesperado en un ListView con diferentes alturas de fila
- Android hide listview scrollbar?
- Android: onScrollStateChanged SCROLL_STATE_IDLE a veces no se dispara
- Cómo hacer la vista de rectángulo en showcaseview para listview
Cómo hacer animaciones una por una en cada elemento de la vista de lista. Estoy extendiendo ArrayAdapter.
- Android: ¿Crear ListView en XML?
- Cómo superponer elementos en LinearLayoutManager - RecyclerView (como tarjetas de apilado)
- Listview no muestra nada y ocultar datos
- Configurar RecyclerView para trabajar como chat
- Cómo ajustar la altura de ListView cuando hay ExpandableListView incrustado en ListView
- Obtener un elemento seleccionado en listview cuando genero el menú contextual
- ¿Mi proceso de almacenamiento en caché de imágenes va a perder memoria?
- FastScrollBar salir de la pantalla, cuando SectionIndexer implementado
Creo que la animación de diseño es buena para su caso, siga:
Cree su archivo XML de animación en la carpeta anim : por ejemplo:
<translate xmlns:android="http://schemas.android.com/apk/res/android" android:fillAfter="true" android:duration="400" android:fromXDelta="-100%" android:toXDelta="0%"/>
Lo llamé como slide_right_in.xml
A continuación, cree otro archivo XML de animación con el elemento raíz de layoutAnimation : (He denominado este archivo como my_layout_animation.xml )
<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android" android:animation="@anim/slide_right_in" android:delay="0.5"/>
¡Ahora ya está listo! Puede aplicarlo en cada vista de contenedor, por ejemplo vista de lista:
<ListView ... android:layoutAnimation = "@anim/my_layout_animation" ... />
Espero eso ayude
Después de jugar con mi propia implementación de animación que tipo de trabajo la mitad de las veces, he encontrado el ListViewAnimations # ExpandableListItemAdapter que era exactamente lo que necesitaba.
Aquí está su aplicación de demostración API en Google Play: ListViewAnimations
Aquí hay un tutorial para Android ListView animación
EDIT:
La idea es crear un oyente y animar la vista dentro de ella:
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView,final View view, final int position, long id) { anim.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationRepeat(Animation animation) {} @Override public void onAnimationEnd(Animation animation) { ItemDetail item = aAdpt.getItem(position); aAdpt.remove(item); } }); view.startAnimation(anim); } });
int delay=(position-list.getFirstVisiblePosition)*200; if(delay<=200) delay=200; animation.setStartOffset(delay);