Question

i essayer d'animer un TextView sur un changeText Mais toujours voir une seule direction de l'animation, je ne vois le fadeout

Qu'est-ce que j'essaie est: beforChange = fadeOut et onChange ou après fadein

voici mon code dans la méthode onCreate de mon activité:

    final Animation out = new AlphaAnimation(1.0f, 0.0f);
    out.setDuration(1000);

    final Animation in = new AlphaAnimation(0.0f, 1.0f);
    in.setDuration(1000);


    bidFirst.setAnimation(out);
    bidMiddle.setAnimation(out);
    bidLast.setAnimation(out);

    TextWatcher bidWatcher = new TextWatcher() {
      public void onTextChanged(CharSequence s, int start, int before, int count) {
        in.startNow();
        bidFirst.setAnimation(out);
        bidMiddle.setAnimation(out);
        bidLast.setAnimation(out);
      }

      public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        out.startNow();
        bidFirst.setAnimation(in);
        bidMiddle.setAnimation(in);
        bidLast.setAnimation(in);
      }

      public void afterTextChanged(Editable s) {
      }
    };
    bidFirst.addTextChangedListener(bidWatcher);
    bidMiddle.addTextChangedListener(bidWatcher);
    bidLast.addTextChangedListener(bidWatcher);

Je pense qu'il ya quelque chose de mal dans mon code, mais pour mon crois qu'il doit travailler.

Ce que j'est maintenant:? Sur tous setText le texte modifié ne FadeOut mais après le texte a changé et ne FadeIn

Était-ce utile?

La solution

TextSwitcher est exactement ce que vous recherchez. Il suffit d'utiliser leur setInAnimation() et setOutAnimation. Que les animations fonctionneront automatiquement si vous modifiez le texte par setText()

Autres conseils

Par l'apparence de votre code que vous dites la TextView à disparaître après un changement plutôt que fondu.

Aussi je ne sais pas comment ce code sera efficace que beforeTextChanged est appelé à quelques minutes avant que le texte est modifié. Il ne sera pas tout simplement assez de temps pour une animation se produire sur beforeTextChanged car il sera instantanément remplacé par votre code dans OnTextChanged

Modifier ** Répondre au commentaire ci-dessous

pour obtenir le textview à disparaître en fondu puis avec du nouveau contenu, je commencer par programme une animation fadeOut plutôt que d'utiliser un Textwatcher. Je donnerais l'animation fadeOut AnimationListener et animationEnd vous pouvez définir le nouveau texte avant de commencer l'animation fadeIn.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top