0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GONEなViewに対してstartAnimationが動かない(時がある)

Posted at

自分用備忘録です。

下の様に、ContainerというViewをタッチするとその子ViewであるgonableViewがフェードイン・アウトするようなものを作ろうとしました。(フェードアウトの方は特に問題なかったので省略しています。)

gonableViewがGONEにContainerをタッチすれば、本来ならばstartAnimationのonAnimationStart内のgonableView.setVisibility(View.VISIBLE)が動き、ヒョコッとフェードインするというものです。

Container.java

public class Container extends LinearLayout {

    public Container(Context context){
        super(context);
        this.setOnClickListener(new myOnClickListener());
    }

}

    private class myOnClickListener implements View.OnClickListener {
        
        final LinearLayout gonableView
                           = (LinearLayout) v.findViewById(R.id.gonableview);

        @Override
        public void onClick(final View v) {

            Animation OutAnimation
             = AnimationUtils.loadAnimation(getContext(),R.anim.out_animation);

            OutAnimation.setAnimationListener(new Animation.AnimationListener() {
                @Override
                public void onAnimationStart(Animation animation) {
                    gonableView.setVisibility(View.VISIBLE);
                }
                @Override
                public void onAnimationEnd(Animation animation) {
                }
                @Override
                public void onAnimationRepeat(Animation animation) {
                }
            });

            if(gonableView.getVisibility()!=View.VISIBLE){
                gonableView.startAnimation(OutAnimation);
            }
        }
    }

途中までこれで動いていたのですが、急に動かなくなり、色々コードを見てみるものの、特に改変した部分は無く…
色々苦戦した後、何となく最後のifブロックに

gonableView.setVisibility(View.VISIBLE);

を入れてみると問題なく動きました。
onAnimationStartは呼ばれたり呼ばれなかったりする…?

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?