View view = View.inflate(ctx, R.layout.xxxxx, null);
하여서 view를 생성하였습니다...
해당 뷰를 붙이면서 동시에 에니메이션을 주고 싶은데...
높이값을 0을 start로 하여 헤당 뷰의 높이를 end로 하여 펴지는 에니메이션을 주고 싶은데
이놈의 뷰가 화면에 나타나기 전엔 getHeight(), getBottom(), getTop() 모두 0을 리턴해 버리는데..
화면에 보이지 않으면서 높이값을 얻어와서 에니메이션에 end 값으로 넣어주고 싶은데...
방법ㅇ ㅣ없을까요..?
꼼수로 layout xml을 초기 상태를 INVISIBLE 상태로 하여 먼저 addView 한 다음에 높이값을 얻어와 봤는데
0이 떨어지는건 마찬가지더라구요....
찾다보니 onMeasure 함수가 많이 언급되던데 이걸 사용해야 하는건가요...?
네 갑자기 나타나는거 맞습니다 ^^;;;
평소에 없는 메뉴인데 우측 상단에 버튼을 누르면 그 버튼 밑으로 세뷰 메뉴가 나와는 형식입니다...
Root 레이아웃은 RelativeLayout으로 되어있어서 세부메뉴(에니메이션을 주고자 하는 메뉴)의 위치는 부모(RelativeLayout)뷰의
우측 속성을 주고 이 세부메뉴를 나오게 하는 버튼의 getBottom()을 topMargin으로 설정하여 우측 버튼 아래에
세부메뉴뷰가 붙도록 하였습니다... 그냥 Visible로 VISIBLE, GONE 조절하는건 쉽게 되었는데...
이제 VISIBILE될때 펴지는 에니메이션을, GONE될때 접히는 에니메이션을 추가하고자 하는건데 잘 안되네요...




잘이해가안되는데 view가 갑자기 위에 붙어서 나타나는건가요?
저같은경우는 애니메이션 사용할땐 프레임레이아웃을 써서, 필요한 뷰는 메인뷰 아래 놓구요(visible상태로),
필요할때 bringToFront를 써서 크기 가져와서 에니메이션을 시작해요.
invisible상태에선 당연히 크기가 0을 리턴하구요.