2010-02-03 4 views
6

나는 단순 해 보이는 것을하려고합니다. 오버레이 설정을 조정할 수있는 화면 하단에서 위로 움직이는 메뉴가있는지도보기를 원합니다. 그러나 TranslateAnimation을 사용하여 (메뉴를 보유하고있는) LinearLayout의 y 위치에 영향을 주었을 때, LinearLayout의 버튼은 움직 였지만, "히트 영역"은 애니메이션 이전과 같은 위치에 있습니다.Android : 애니메이션보기 위치보기

TranslateAnimation slide = new TranslateAnimation(0,0,0,0); 
slide.setDuration(300); 
slide.setFillAfter(true); 
pullupMenu.startAnimation(slide); 
mapContainer.startAnimation(slide); 

또한보기의 marginTop 값을 트위닝했지만 그 방법을 결정할 수조차 못했습니다.

위의 지침 중 하나라도 도움이된다면 많은 도움이 될 것입니다.

+0

[Android - LinearLayout 또는 RelativeLayout에서 뷰의 topMargin/bottomMargin /에 애니메이션을 생성 할 수 있습니다.] (http://stackoverflow.com/questions/2239442/android-animate-a-views-topmargin-bottommargin-etc-in 선형 정렬 또는 상대 선형) –

답변

7

일반적으로 애니메이션은 위젯의 픽셀에 애니메이션을 적용합니다. 당신이 작성한 것에 근거한 나의 의심은 setFillAfter()픽셀을 위젯 자체가 아닌 목적지 위치에 머물러있게 배치 할뿐입니다. 당신이 실제로 위젯을 이동 바람 애니메이션을 원하는 경우

을 수행해야합니다

  • 때 애니메이션 끝을 찾아 리스너를 등록하고,
  • 레이아웃을 수정하는 그 시점에서 정리 위젯이 새 위치에 실제로 존재한다는 규칙

이 기술을 사용하는 슬라이딩 창 here을 볼 수 있습니다.