Проблема с Android-анимацией?
В моем приложении у меня 6 кнопок. В onCreate()
, У меня есть startAnimation()
который будет выполнять анимацию для появления кнопок. После вызова этого метода у меня есть setOnclickListener()
s для каждой кнопки.
Мой код в onCreate()
выглядит так:
startAnimations();
b1.setOnClickListener(this);
b2.setOnClickListener(this);
b3.setOnClickListener(this);
b4.setOnClickListener(this);
b5.setOnClickListener(this);
b6.setOnClickListener(this);
Проблема в том, что когда я тестировал свое приложение и во время запуска анимации, я могу нажать любую кнопку, даже если кнопка еще не отображалась. Я имею в виду, я могу нажать в месте кнопки, и действие, связанное с этой кнопкой, начнется.
Я хочу заставить кнопки НЕ отвечать на щелчки, пока не закончится вся анимация.
Могу ли я сделать это?
3 ответа
Почему бы вам не отключить кнопки onCreate или по умолчанию, а затем, когда анимация заканчивается, включите ее.
findViewById(R.id.button1).setEnable(false);
findViewById(R.id.button1).setEnable(false);
....
final RelativeLayout l = (RelativeLayout) findViewById(R.id.group_band);
Animation a = new TranslateAnimation(0, 0, -100, 0);
a.setDuration(200);
a.setAnimationListener(new AnimationListener() {
public void onAnimationEnd(Animation animation) {
findViewById(R.id.button1).setEnable(true);
findViewById(R.id.button2).setEnable(true);
....
}
public void onAnimationRepeat(Animation animation) {
}
public void onAnimationStart(Animation animation) {
}
});
l.startAnimation(l);
Как вы думаете?
Вы можете сделать это до того, как вызов кнопки анимации будет активирован false
b1.setEnabled(false);
затем позвоните startAnimations();
затем завершить анимацию, которую вы можете сделать с b1.setEnabled(true);
как это...
button.setClickable(false) или button.setOnClickListner(null) может быть?
Может быть, установить их и зарегистрировать AnimationListener. Смотрите это. После вызова onAnimationEnd, button.setClickable(true) и / или button.setOnClickListener(this).