마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

뷰의 크기를 구해야 합니다.

0 추천
xml로 작성된 LinearLayout 의 크기를 구해야 합니다.

onCreat 에서는 뷰의 크기를 구할 수 없다고 하여

onWindowFocusChanged

를 사용하였습니다.

그런데 Log에는 제대로 찍히는데

getHeight 값만 구한다고 할 때

그 값을 int iCount 라는 변수에 넣을 것입니다.

그러고 onCreat 안에 있는 TextView에다가 그 크기를 출력시키기 위해

setText("" + iCount); 를 사용했는데

0으로 찍힙니다.

Log에는 140 이렇게 정상적으로 찍히는데

변수에만 넣으면 0이 찍히더군요.

왜 그런거죠?
또라에몬 (900 포인트) 님이 2014년 2월 9일 질문
소스 코드를 일부분이라도 보여주세요

1개의 답변

+2 추천

onCreate()말고, onWindowFocusChanged에서 setText하시면 됩니다.

onCreate가 실행되고, onWindowFocusChanged가 실행되기 때문에 당연히iCount의 값은 0이됩니다.

그리고 뷰의크기는 화면에 뷰들이 배치되고 나서 구할수가 있습니다. onCreate에서는 아직 배치전이기때문에 모든 뷰의 크기가0으로 나옵니다. 만약 버튼을 눌러서 뷰의 크기를 구한다면, 이미 화면이 생성되고 나서의 작업이기 때문에 onCreate내부에 써줘도 구해집니다.

액티비티의 생명주기에 관한 내용을 찾아서 읽어보시면 도움이 되실듯합니다.

hahohehi (1,250 포인트) 님이 2014년 2월 9일 답변
...