20120210_211220.jpg

 

얼마 전에 질문 드린 문제는 대충 해결 봤는데,

 

다른 문제가 생겼습니다:)

 

애니메이션을 어떻게 구성해야할 지 모르곘네요.

 

프레임 레이아웃으로 스크롤 위에 레이아웃 하나가 있고(mRLay, 사진에서 아래쪽 버튼들),

 

그 레이아웃 Height가 리스트뷰 한 항목을 가려서, 맨 밑의 아이템은 클릭 이벤트를 못받습니다.

 

그래서 스크롤이 맨 밑에 오면, 뷰가 사라지도록 해 보았는데, 그냥 뿅 하면서 사라지긴 좀 뭐해서 애니메이션을 넣어봤습니다.

 

alpha는 아무 효과 없는거고, alpha_bar는 사라지는(alpha=0으로) 효과고, reverse_alpha_bar는 생기는(alpha =0에서 1로) 효과입니다.

 

흐흐;; 쉽게 하자면 그냥 뿅뿅 사라지게 하고 싶은데...

 

아무래도 이 앱은 좀 완성도 있게 만들고 싶어서...

 

도움을 부탁드립니다..

 

온스크롤 리스너
 @Override
   public void onScroll(AbsListView view, int firstVisibleItem,
     int visibleItemCount, int totalItemCount) {
    final RelativeLayout mRLay;
    mRLay = (RelativeLayout) findViewById(R.id.relativeLayout2);
    if (visibleItemCount <= 9) { // 스크롤 평소(리스트에 아이템 9까지 들어갑니다)에는 비지블리티 VISIBLE로
     mRLay.setVisibility(View.VISIBLE);
     Animation ani = null;
     ani = AnimationUtils.loadAnimation(Browser.this,
       R.anim.alpha);
     mRLay.startAnimation(ani);
    } else if (totalItemCount > 0 // 스크롤이 맨 밑에 오면...
      && firstVisibleItem + visibleItemCount == totalItemCount) {
     Animation ani = null;
     ani = AnimationUtils.loadAnimation(Browser.this,
       R.anim.alpha_bar);
     mRLay.startAnimation(ani);
     ani.setAnimationListener(new AnimationListener() {
      @Override
      public void onAnimationEnd(Animation Animation) {
       mRLay.setVisibility(View.GONE);
      }
온스크롤 리스너
      @Override
      public void onAnimationRepeat(Animation animation) {
      }
온스크롤 리스너
      @Override
      public void onAnimationStart(Animation animation) {
      }
     });
온스크롤 리스너
    } else { // 이도 저도 아니면
     Animation ani = null;
     ani = AnimationUtils.loadAnimation(Browser.this,
       R.anim.reverse_alpha_bar);
     mRLay.startAnimation(ani);
온스크롤 리스너
     ani.setAnimationListener(new AnimationListener() {
      @Override
      public void onAnimationEnd(Animation Animation) {
온스크롤 리스너
      }
온스크롤 리스너
      @Override
      public void onAnimationRepeat(Animation animation) {
      }
온스크롤 리스너
      @Override
      public void onAnimationStart(Animation animation) {
       mRLay.setVisibility(View.VISIBLE);
      }
     });
    }
   }

이렇게 됩니다.