Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


ListView animar elemento único

Conseguí un ListView con los artículos en él. Cuando el usuario hace clic en un elemento su altura debe escalar a cero y todos los elementos a continuación deben desplazarse hacia arriba. Mi código abajo no funciona. Con mi código el elemento que se hizo clic en escalas a la derecha, pero los elementos de abajo no desplazarse hacia arriba, se quedan en la misma posición. También lo he probado con un LinearLayout pero hay el mismo problema.

Hay una aplicación que hace este derecho. Se llama Tareas .

Esta pequeña imagen debe explicar el problema

Mi implementación actual se ve así:

@Override public void onItemClick(AdapterView<?> arg0, View v, final int index, long id) { Animation anim = AnimationUtils.loadAnimation(getActivity(), R.anim.scaleup); v.startAnimation(anim); } 

 <set android:shareInterpolator="false" > <scale android:duration="700" android:fillAfter="false" android:fillBefore="false" android:fromXScale="1.0" android:fromYScale="1.0" android:interpolator="@android:anim/accelerate_decelerate_interpolator" android:pivotY="0%" android:toXScale="1.0" android:toYScale="0.0" /> </set> 

  • Android Cómo reciclar el mapa de bits correctamente cuando se utiliza RecyclerView?
  • EditText no recibe eventos clave TAB - stock soft vk
  • Diferente posición z para los elementos ListView
  • Android RatingBar se pinta mal
  • Última fila de listview expandible no vista completa en android
  • ¿Cómo puedo agregar datos que he introducido en un cuadro de EditText en una matriz para enumerar en otra actividad?
  • Mejora el adaptador grande ListView deslizamiento suave, a veces espasmódico
  • Android RecyclerView con SectionIndexer
  • 3 Solutions collect form web for “ListView animar elemento único”

    Aquí hay una clase que hice (modificada de la fuente que encontré aquí ) que puede darle la funcionalidad que desea.

     public class FadeUpAnimation extends Animation { int mFromHeight; View mView; public FadeUpAnimation(View view) { this.mView = view; this.mFromHeight = view.getHeight(); } @Override protected void applyTransformation(float interpolatedTime, Transformation t) { int newHeight; newHeight = (int) (mFromHeight * (1 - interpolatedTime)); mView.getLayoutParams().height = newHeight; mView.setAlpha(1 - interpolatedTime); mView.requestLayout(); } @Override public void initialize(int width, int height, int parentWidth, int parentHeight) { super.initialize(width, height, parentWidth, parentHeight); } @Override public boolean willChangeBounds() { return true; } } 

    Entonces esto es cómo lo estoy usando

     View tv = ... Animation a = new FadeUpAnimation(tv); a.setInterpolator(new AccelerateInterpolator()); a.setDuration(300); tv.setAnimation(a); tv.startAnimation(a); 

    Usted puede jugar con él para ver si usted puede conseguirlo para caber sus necesidades.

    ¿Utilizará el elemento pulsado de nuevo? Si no, entonces usted podría

    1. Espere hasta que termine la animación
    2. Elimine el elemento desde donde almacene los datos de subyacente
    3. A continuación, llame al método notifyDataSetChanged () de su listadapter

    El Android no actúa como HTML, cuando cambia el ancho, la altura o la visibilidad en una vista, las otras vistas no actualizan sus posiciones. Si necesitas hacer eso, debes actualizar todo el listview y tus vistas dentro, individualmente. Este es un código complejo para hacer.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.