본문 바로가기
메모 log (간단메모)/mobile

'viewTreeObserver' 뷰의 크기를 측정

by abbear25 2021. 1. 14.

viewTreeObserver

root_view.viewTreeObserver.addOnGlobalLayoutListener ( object: ViewTreeObserver.OnGlobalLayoutListener{
            override fun onGlobalLayout() {
                //뷰 측정 등을 구현
                //사용 후 해제
                root_view.viewTreeObserver.removeOnGlobalLayoutListener(this)
            }
        })

최상단 뷰가 화면에 그려진 후에 호출되는 관찰자

xml 레이아웃에 가장 바깥쪽 요소에 관찰자를 지정해야 함

예전에는 다른 뷰의 크기를 측정 후 특정 뷰의 크기를 지정하기 위해서 뷰를 커스텀하거나 딜레이를 주는 형태로 구현하였으나

해당 관찰자를 통해 뷰가 반영된 시점을 정확히 파악하여 크기를 측정할 수 있음

*뷰가 그려지기 전에 크기를 측정하면 높이과 넓이가 모두 0으로 나옴

 

 

반응형

'메모 log (간단메모) > mobile' 카테고리의 다른 글

아이폰 Identifier UUID 간단 확인방법 (feat. Mac)  (0) 2023.03.10
MacBook, AndroidStudio Error  (0) 2021.02.08
resource 색상 가져오기  (0) 2020.04.21
'Event 등록' ACC  (0) 2020.03.18
'stetcho' 디버깅  (0) 2020.03.01