안녕하세요.
xml에 A라는 layout을 만들고 거기에 버튼을 몇개 붙이고 gone으로 처리를 하였습니다.
필요에 따라 A를 visible해서 사용을 하려고 합니다.
A를 visible 할때와 gone 할때 animation을 주어서 미끄러지듯 나오게 하였습니다.
그런데 나올때(visible)할때는 에니메이션이 잘 작용이 되었는데 숨길때(gone) 에니적용이 안되고 바로 사라져 버립니다.
원인은 gone 할때 있었습니다.
아래의 소스를 보면
Animation an = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.left_right_out);
an.setFillAfter(true);
textOptionlayout.startAnimation(an);
textOptionlayout.setVisibility(View.GONE);
startAnimation 후 바로 GONE 처리를 해서 사라져 버린것입니다.
제가 gone을 한 이유는
gone처리를 안하면 A가 나왔다가 사라진경우
A가 나왔던 자리를 터치하면 A는 사라졌지만 A에 있던 버튼에 onClick()이 발생합니다.
이런경우 어떻게 처리를 해야 되는건지...
조언 부탁드립니다.
give & take
//애니메이션 설정
private void setAnimation(Animation animation){
animation.setFillAfter(true); // animation를 setFillAfter를 이용하여 animation후에 그대로 있도록 합니다.
animation.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationEnd(Animation animation) {
//애니메이션이 끝날시 실행되는 메소드 구현
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationStart(Animation animation) {
}
});
//layout.startAnimation(animation)
}
애니메이션에 AnimationListener 를 줄수 있습니다.
거기서 애니메이션이 끝나면 GONE 을 해주면 될거 같네요