2013-02-17 3 views
0

Salut j'ai deux textViews que j'ai initialement mis sa visibilité à disparaître puis animer et devenir visible. Maintenant, je veux rendre l'invisible à nouveau, mais pour une raison quelconque, ils montrent encore à l'écran ne quelqu'un non pourquoi?changer la visibilité du texte android

dans mon onCreate() je fais la vue parti

register = (TextView)findViewById(R.id.register); 
     register.setVisibility(View.GONE); 
     forgotpassword = (TextView)findViewById(R.id.forgotpw); 
     forgotpassword.setVisibility(View.GONE); 

puis plus tard je le rendre visible

public void run() 
      { 
       animations(); 
       loginForm.setVisibility(View.VISIBLE); 
       register.setVisibility(View.VISIBLE); 
       forgotpassword.setVisibility(View.VISIBLE); 
      } 

puis lorsqu'un utilisateur appuie sur un bouton je veux les vues de texte à devenir invisible afin qu'ils conservent leur mise en page, mais ils restent visibles à l'écran

signInBtn = (Button) findViewById(R.id.signin); 
     signInBtn.setOnClickListener(new View.OnClickListener() { 

      public void onClick(View arg0) { 
       signInProcess(); 
      } 
     }); 


public void signInProcess() { 

    register.setVisibility(View.INVISIBLE); 
    forgotpassword.setVisibility(View.INVISIBLE); 
    setuploader.setVisibility(View.VISIBLE); 

}

+0

Etes-vous sûr que la fonction 'signInProcess()' est appelée? –

+0

oui j'ai édité ma question pour vous montrer –

+0

est votre animation animant le signeInButton? –

Répondre

1

Dans Android lorsque vous animez quelque chose, c'est juste dessiné ailleurs. L'élément réel n'est pas déplacé. Ainsi, lorsque vous animez signInBtn, il est dessiné ailleurs, mais le bouton actuel n'est pas déplacé de la position d'origine. Ainsi, lorsque vous cliquez sur le bouton, le gestionnaire de clic n'est pas appelé.

Pour éviter cela, réglez fillAfter = True dans votre animation afin que le bouton soit déplacé à la fin de votre animation.

En outre, après avoir animé une vue dans Android, assurez-vous d'appeler View.clearAnimation() avant d'essayer de changer sa visibilité.

Questions connexes