2011-03-25 3 views
0

У меня есть кнопка, которая показывает или скрывает представление. Когда кнопка нажата, представление добавляется в макет, и начинается анимация перевода. Второе нажатие кнопки приведет к удалению представления из макета. I пользователь addView(view, 0), чтобы убедиться, что представление находится за всеми остальными видами. Он работает нормально.Запретить просмотр во время анимации

Проблема возникает, когда отображается представление, и я нажимаю кнопку дважды очень быстро (вроде двойного щелчка). В этом случае представление переходит во фронт во время анимации.

Как я могу предотвратить это?

ответ

1

Просто отключите (setEnabled(false)) и включите его в AnimationListener.onAniationEnd().

UPD: хорошо, это код, который иллюстрирует мою мысль:

final Button btn = (Button) findViewById(R.id.myButton); 
    View view = (View) findViewById(R.id.myView); 

    btn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      btn.setEnabled(false); 
      // animation here 
      addView(view, 0); 
     } 
    }); 

    // somewhere else 
    final Button btn = (Button) findViewById(R.id.myButton); 
    btn.setEnabled(true); 
    removeView(view); 
+0

Я не использовать анимацию, когда я скрыть вид. Я просто удаляю его с помощью removeView (view). –

+0

ok, затем включите его, прежде чем делать addView(). –

+0

Хммм ... чем я не мог щелкнуть по нему –

Смежные вопросы