현재 프로젝트의 경우 핸들과 내용이있는 풀다운 뷰를 작성하고 있습니다. 핸들을 드래그하여 핸들을 움직이면 모든 것이 정상입니다. 그런 다음 풀다운을 완전히 열거 나 닫을 애니메이션을 시작합니다.안드로이드 뷰 애니메이션의 위치가 느슨합니다.
첫째 : 거기에 애니메이션이 다 ... 잘하지만, 오프 과정이 원활하지 않고
그래서 나는 애니메이션이 추가되었습니다 :
ObjectAnimator animHandle = ObjectAnimator.ofFloat(mHandleContainer, "y", newHandlePosition);
ObjectAnimator animContent = ObjectAnimator.ofFloat(mContent, "y", newContentPosition);
final AnimatorSet animatorSet = new AnimatorSet();
animatorSet.playTogether(animHandle, animContent);
animatorSet.setInterpolator(new AccelerateDecelerateInterpolator());
animatorSet.setDuration(MAX_ANIMATION_DURATION);
animatorSet.start();
모든 것이 잘 utill입니다 이리. 내가 다시 핸들 (mHandleContainer)를 누르면 핸들이 배치된다
는하지만, 그래서 나는
mHandleContainer.getTop()
을 알고 싶어 그리고 그것은 모든 잘못 곳입니다. 사용자 정의 구성 요소를 초기화 할 때 핸들의 윗부분을 0으로 설정합니다. 지금까지는 너무 좋아서 드래그하기 시작했습니다. 1134 픽셀 위치로 움직일 것을 알았습니다. 어느 것이 좋습니다 (풀다운이 완전히 열려 있음을 의미).
는하지만 내가 핸들을 다시 눌러 정상을 얻을 수 (getTop())과 아직 내가 원하는 것은 내보기의 getTop() 함수는 나를 다시 1134을 반환 나를 0
에게 반환합니다.
그럴 수 있습니까?
또는 AnimatorListener의 onAnimationEnd 메소드에서 뭔가를해야합니까? 이미 거기에 mHandleContainer.layout (..)을 시도한 다음 내 getTop()은 괜찮습니다.하지만 내 레이아웃이 엉망이되었습니다 ...
정확한 위치에서 애니메이션을 끝내기위한 트릭입니다. (그렇듯이)보기의 위치를 유지합니까?
나는 이미 SO (및 Google)에서 한 번 보았지만 유용한 것을 찾지 못했습니다. 내가 발견 할 수있는 유일한 문제는 다음과 같습니다. NineOldAndroids, not clickable view after rotation or move 하지만 도움이되지 않았습니다 ...