2012-05-16 22 views
7

translate.animate çalışırken düğme tıklatılamıyor nasıl yapılır. Ben her ikisi de benim için çalıştı button.setclickable(false) ve button.setEnabled(false) ile çalıştı.Android'de hareket ederken düğme tıklanamaz nasıl ayarlanır?

b2.setOnClickListener(new OnClickListener() 
{ 
    public void onClick(View v) 
    { 
    if(i%2==0) 
    { 
     //b2.setClickable(false); 
     //   Toast toast1 = Toast.makeText(getBaseContext(), "Success", 1); 
     //   toast1.show(); 
     if(i==0) 
     { 
     //b2.setOnClickListener(null); 
     b2.setEnabled(false); 
     //b2.setClickable(false); 
     int modifierY; 
     modifierY=-70; 
     Animation translateAnimation=new TranslateAnimation(0, 0, 0, modifierY); 
     translateAnimation.setDuration(600); 
     translateAnimation.setFillEnabled(true); 
     MyAnimationListener listener=new MyAnimationListener(b2, modifierY,SimpleViewPagerforAndroidActivity.this); 
     translateAnimation.setAnimationListener(listener); 
     // b2.setOnClickListener(null); 
     Animation translateAnimation1=new TranslateAnimation(0, 0, 0,0); 
     translateAnimation1.setDuration(1000); 
     translateAnimation1.setFillEnabled(true); 
     MyAnimationListener listener1=new MyAnimationListener(main, 0,SimpleViewPagerforAndroidActivity.this); 
     translateAnimation1.setAnimationListener(listener1); 

     main.setVisibility(RelativeLayout.VISIBLE); 
     /* long time =AnimationUtils.currentAnimationTimeMillis(); 

     main.invalidate(); 
     b2.invalidate(); 

     translateAnimation.setStartTime(time); 
     translateAnimation1.setStartTime(time);*/ 
     main.startAnimation(translateAnimation1); 

     b2.startAnimation(translateAnimation); 
     i++; 
     // b2.setOnClickListener(this); 
     } 
     else 
     { 
     //b2.setOnClickListener(null); 
     b2.setEnabled(false); 
     //b2.setClickable(false); 
     int modifierY; 
     modifierY=-70; 
     Animation translateAnimation=new TranslateAnimation(0, 0, 0, modifierY); 
     translateAnimation.setDuration(1000); 
     translateAnimation.setFillEnabled(true); 
     MyAnimationListener listener=new MyAnimationListener(b2, modifierY,SimpleViewPagerforAndroidActivity.this); 
     translateAnimation.setAnimationListener(listener); 

     Animation translateAnimation1=new TranslateAnimation(0, 0, 0,-150); 
     translateAnimation1.setDuration(600); 
     translateAnimation1.setFillEnabled(true); 
     MyAnimationListener listener1=new MyAnimationListener(main, -150,SimpleViewPagerforAndroidActivity.this); 
     translateAnimation1.setAnimationListener(listener1); 

     main.setVisibility(RelativeLayout.VISIBLE); 
     /* long time =AnimationUtils.currentAnimationTimeMillis(); 

     main.invalidate(); 
     b2.invalidate(); 

     translateAnimation.setStartTime(time); 
     translateAnimation1.setStartTime(time);*/ 
     main.startAnimation(translateAnimation1); 

     b2.startAnimation(translateAnimation); 
     // b2.setOnClickListener(this); 
     i++; 
     } 
    } 
    else 
    { 
     //b2.setOnClickListener(null); 
     b2.setEnabled(false); 
     //b2.setClickable(false); 


     Animation translateAnimation=new TranslateAnimation(0, 0, 0,150); 
     translateAnimation.setDuration(1000); 
     translateAnimation.setFillEnabled(true); 
     MyAnimationListener listener=new MyAnimationListener(main, 150,SimpleViewPagerforAndroidActivity.this); 
     translateAnimation.setAnimationListener(listener); 
     Animation translateAnimation1=new TranslateAnimation(0, 0, 0,70); 
     translateAnimation1.setDuration(600); 
     translateAnimation1.setFillEnabled(true); 
     MyAnimationListener listener1=new MyAnimationListener(b2, 70,SimpleViewPagerforAndroidActivity.this); 
     translateAnimation1.setAnimationListener(listener1); 
     /* long time =AnimationUtils.currentAnimationTimeMillis(); 

     main.invalidate(); 
     b2.invalidate(); 

     translateAnimation.setStartTime(time); 
     translateAnimation1.setStartTime(time); 
     main.startAnimation(translateAnimation1); 

     b2.startAnimation(translateAnimation);*/ 
     b2.startAnimation(translateAnimation1); 
     main.startAnimation(translateAnimation); 
     i++; 
     //b2.setOnClickListener(this); 
    } 
    } 
}); 
+1

Lütfen kod pasajını gönderin – Rajesh

+0

kullanım AsyncTask bu, başka bir görev çalışırken biraz arka plan çalışması yapmanız gerektiğinde, .... – SilentKiller

+0

Animasyon geri arama işlevlerinde ayarlamayı denediniz. –

cevap

16

Kontrol, hasEnd özelliğini kullanarak, animasyon tamamlanmış olup olmadığını tıklayın kodunun altına atın:

if (!(animation.hasEnded()) { 
    button.setClickable(false); 
} 
else{ 
button.setClickable(true); 
} 
0

Birinci düğme seçilebilir yapabilir:

İşte benim kodudur. O zaman bu şeyler işe yarayacak.

Button.setSelected (doğru); butonuna

2

Ben Dokunmatik olay devre dışı bırakmak için button.setEnabled(false) kullanın.

İlgili konular