1

私のアプリケーションには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);

問題は、アプリケーションをテストしたとき、アニメーションの開始中に、ボタンがまだ表示されていなくても、任意のボタンをクリックできることです。つまり、ボタンの場所をクリックすると、そのボタンに関連するアクションが開始されます。

アニメーション全体が終了するまで、ボタンがクリックに応答しないように強制したいと思います。

それをしてもいいですか?

4

3 に答える 3

4

作成時またはデフォルトでボタンを無効にして、アニメーションが終了したら有効にしてみませんか。

 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);

どう思いますか?

于 2011-07-16T06:23:07.147 に答える
1

アニメーションボタンの設定を有効にする前に行うことができますfalse

b1.setEnabled(false);

次に、電話をかけstartAnimations();て、アニメーションを完成させます。b1.setEnabled(true);

そのように...

于 2011-07-16T06:22:41.240 に答える
0

button.setClickable(false)またはbutton.setOnClickListner(null)多分?

たぶんそれらを設定し、AnimationListenerを登録します。これを参照してください。onAnimationEndが呼び出されると、button.setClickable(true)および/またはbutton.setOnClickListener(this)が呼び出されます。

于 2011-07-16T06:20:50.860 に答える