2017-10-14 5 views
-3

J'ai la mise en page relative comme ma mise en page parente. J'ai ajouté Linear Layout (Vertical) à l'intérieur pour afficher une boîte lorsque quelqu'un gagne. Je veux retarder de quelques secondes la visibilité de la boîte (Layout linéaire). Quelqu'un peut-il me dire, comment puis-je faire cela? Le TextView ici se trouve à l'intérieur de la disposition linéaire.Comment retarder la visibilité de la disposition linéaire après avoir cliqué sur un bouton? Voici mon code:

if(gameState[winningPosition[0]] == 0) 
       { 

        winner = "Jesse Pinkman"; 

       } 

       TextView winnerMessage = (TextView) findViewById(R.id.winnerMessage); 

       winnerMessage.setText(winner + " has won!"); 

       LinearLayout layout = (LinearLayout) findViewById(R.id.playAgainLayout); 


       layout.setVisibility(View.VISIBLE); 

      } 

Répondre

0

Essayez ceci.

int DELAY_TIME = 1000; 
new Handler().postDelayed(new Runnable() { 
    @Override 
    public void run() { 
     // doing something here 
     layout.setVisibility(View.VISIBLE); 
    } 
},DELAY_TIME); 
0

Vous pouvez utiliser ce code à la place de layout.setVisibility(View.VISIBLE);:

final Handler handler = new Handler(); 
      handler.postDelayed(new Runnable() { 
       @Override 
       public void run() { 
        layout.setVisibility(View.VISIBLE); 
       } 
      }, 3000); 

3000 est ici 3 secondes écrit en ms. Vous pouvez le changer selon vos besoins.

+0

Cela a fonctionné comme un charme! Pouvez-vous s'il vous plaît me dire comment cela fonctionne réellement? Que fait le gestionnaire? – Aakash

+0

Handler ajoute fondamentalement un message ou un runnable à une file d'attente et ne le ramène à l'exécution qu'après que le délai que nous avons fourni est terminé. Il planifie l'exécution de messages ou de runnable lorsque la file d'attente de messages est prête ou prend un délai ou une heure absolue pour cela. Il a beaucoup de méthodes comme postDelayed(), post(), postAtTime() etc. –

0

vous devez utiliser Handler

Un gestionnaire vous permet d'envoyer et de traiter le message et les objets Runnable associé à MessageQueue d'un fil. Chaque instance de gestionnaire est associée à un seul thread et à la file d'attente des messages de ce thread. Lorsque vous créez un nouveau gestionnaire, il est lié à la file d'attente/message du thread qui le crée - à partir de ce moment, il enverra les messages et les exécutables à cette file d'attente et les exécutera à la sortie du message queue.

exemple de code

new Handler().postDelayed(new Runnable() { 
    @Override 
    public void run() { 
     // perform your action here 
     layout.setVisibility(View.VISIBLE); 
    } 
},1000);// delay times milliseconds