2012-05-16 36 views
7

Cách thực hiện nút không thể nhấp trong khi đang thực hiện translate.animate. Tôi đã thử với button.setclickable(false)button.setEnabled(false) cả hai lần làm việc cho tôi.Làm cách nào để đặt nút không thể nhấp được khi hoạt ảnh trên Android?

Đây là mã của tôi:

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

Vui lòng đăng đoạn mã – Rajesh

+0

sử dụng AsyncTask đây là những gì khi bạn cần thực hiện một số nền trong khi một tác vụ khác đang chạy, .... – SilentKiller

+0

Bạn đã cố gắng đặt trong chức năng gọi lại hoạt ảnh. –

Trả lời

16

Kiểm tra trên nút bấm liệu hoạt hình được hoàn thành hay không, sử dụng hasEnd tài sản, kiểm tra mã dưới đây:

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

Trước tiên hãy vào nút lựa chọn. Sau đó, những thứ đó sẽ hoạt động.

Button.setSelected (true);

2

tôi sử dụng button.setEnabled(false) để vô hiệu hóa sự kiện Touch.

Các vấn đề liên quan