안드로이드 개발 질문/답변
(글 수 45,052)
layout.xml 에 웹뷰를 width = fill parent height = fill parent 로 정의 하였습니다.
이렇게 해노면 기기마다웹뷰에 크기가 달라질것이라고 생각했고 그 값을 코드상에서 받아오고 싶습니다.
getlayoutparams, getwidth, getheight 등 값을 받아오는 메소드를 아무리 써봐도 -1만 리턴 합니다.
이유가 뭔가요?
2013.01.29 13:16:03
layout 에 정의를 해두셨으면, activity 에서 setcontentview 를 통해서 inflate 할것으로 예상되는데요.
모든 view 는 inflate 하는 순간 window 에 add 되는것이 아닙니다.
시간이 좀 걸리기때문에, inflate 하자마자 바로 체크를 해봐야, 객체만 생성되어있을뿐 해당 view 가 add 되지 않은 상태라
-1 과같은 값이 읽힙니다.
기억이 안나는데, activity 라면, onattchfromwindow 인가 하는 메소드가 있는데요.
이게 window 에 뷰들이 다 올라가면 콜 되는놈입니다.
여기서 하면 될거 같네요.
젤 확실한건, 해당 view 에 viewtreeobserver 를 달아서, ongloballayou 인가요. 하는 리스너를 등록하고
거기서 체크하면 됩니다.
1초 딜레이를 주고 구해보세요.