Проблема с 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).

Другие вопросы по тегам