Animación de Android dejando artefactos
Estoy teniendo un problema bastante extraño con la animación en mi proyecto. En las capturas de pantalla publicadas a continuación se puede ver claramente la tarjeta de Totales dejando algún tipo de pista en la animación. Este problema es reproducible en un stock Nexus 7 que ejecuta 4.2.2. La tarjeta Totals tiene una animación de estilo de Google Now. Es importante tener en cuenta que el contenedor de la tarjeta de totales es un fragmento, el menú a la izquierda en la captura de pantalla de paisaje es un fragmento diferente, y los botones de abajo son parte de la actividad a la que se adjuntan los fragmentos.
- Problema de hilo simple con la animación de Android
- SlidingDrawer semi abierto al inicio
- Menú de opciones de animación
- Animar las adiciones de RecyclerView desde abajo
- Problema de AnimationSet en android
No puedo encontrar una solución en línea, he intentado setFillAfter "true" y compensar el comienzo de la animación. El rastro de los botones de la actividad en la parte inferior ("Anterior y" Siguiente) desaparece cuando se presiona uno de los botones.
Aquí está el código en el onCreateView de los totales Fragmento:
final View view = inflater.inflate(R.layout.fragment_totals, container, false); Fonts.setRobotoThinFont(getActivity(), view); final LinearLayout mContainer = (LinearLayout) view.findViewById(R.id.container); final View mCard = inflater .inflate(R.layout.view_simpletotal, mContainer, false); Animation animation = AnimationUtils.loadAnimation(getActivity(), R.anim.card_animation); mContainer.addView(mCard); mCard.startAnimation(animation); return view;
Cualquier ayuda sería muy apreciada!
- Crear circular revelar para los dispositivos pre-Lollipop (Android)
- Fondo animado como la aplicación de despertador Timely
- ¿Cómo hacer la animación slide-in-up de la funcionalidad $ state.go en el marco iónico?
- ¿Cómo puedo programar una animación circular rotatoria como esta (foto adjunta)? Androide
- CardView muestra artefactos cuando RotationY> 60
- Animación Android startOffset roto o buggy?
- Gire un ImageView en sentido horario usando ObjectAnimator
- Animación flotante suave con traducción en XML
Usted puede deshacerse fácilmente de él simplemente invalidando la actividad del contenedor cuando termina la animación.
Le sugiero que utilice el método setLayoutAnimation()
de la clase ViewGroup
. Creo que te ayudará.
Por ejemplo, puede escribir este código dentro de su clase de fragmento:
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { ... rootView.setLayoutAnimation(getLayoutAnimation()); ... } private LayoutAnimationController getLayoutAnimation() { Animation animation = new RotateAnimation(30, 0, -100, 0); animation.setDuration(1000); LayoutAnimationController layoutAnimationController = new LayoutAnimationController(animation); return layoutAnimationController; }
Vea lo que sucederá con la animación.
- El getview de adaptador personalizado lanza NullPointerException cuando las variables no son nulas
- ¿Cómo conservar la instancia de fragmento de fragmento de reproducción de vídeo después de un cambio de orientación?