1
저는 현재 사용자가 클릭하면보기가 커질 애니메이션에 대해 작업하고 있습니다. 기본적으로 클릭 한 카드는 맨 아래의 내용을 보여줍니다. 이를 위해,이 같은 애니메이션을 확장하고 있습니다 :안드로이드는 0dp로 부풀린 랩 콘텐츠보기의 높이를 얻습니다.
Val collapseAnimation = object : Animation() {
override fun applyTransformation(interpolatedTime: Float, t: Transformation?) {
val interpolatedInverted = 1 - interpolatedTime
val headerLp = headerImage.layoutParams
headerLp.width = ...
headerImage.layoutParams = headerLp
}
}
문제는 내가 0dp로 XML로 정의되는 뷰 (wrap_content)의 높이를 얻을 필요가있다. 기본적으로, 나는 0dp에서 wrap_content까지 뷰를 성장시키고 싶다. 그래서 나는 wrap_content 크기가 무엇인지 알아야한다.
보기 크기를 하드 코딩하지 않고 어떻게 가장 효율적으로이를 수행 할 수 있습니까?
시도가 런타임에 크기를 얻을 수있는 ViewTreeObserver를 사용하여. https://developer.android.com/reference/android/view/ViewTreeObserver.html –
뷰는 처음에는 0dp로 확장되어 있으므로이 솔루션만으로는 작동하지 않습니다. –
뷰가 배치되면 ' 뷰의 getWidth'는 실제 너비를 반환합니다. 따라서 onCreateView에서 이것을 호출하지 마십시오. 'ViewTreeObserver'를 사용하여 뷰가 배치되었는지 확인할 수 있습니다. –