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

view.post()에서 view.getHeight 결과 0이 나오는 경우

0 추천

public void onCreate(Bundle savedInstanceState) {

...생략...

View view = (View) findViewById(R.id.view);
 
view..post(new Runnable() {
    @Override
    public void run() {
        Log.i(TAG, "view height : " + view.getHeight());
       ... view.getHeight() 전달.....
    }
});
 
안녕하세요.
위와 같이 post를 사용한 경우 가끔 0이 나올때가 있어 오동작을 할때가 있는데요.
view의 높이가 잡히는 타이밍을 어떻게 알 수 있을까요?
 
등가교환 (1,110 포인트) 님이 2013년 6월 19일 질문

2개의 답변

+3 추천

view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {

    @Override
    public void onGlobalLayout() {
        int width = getWidth();
         
        view.getViewTreeObserver().removeGlobalOnLayoutListener(this);
    }
});
aucd29 (218,390 포인트) 님이 2013년 6월 19일 답변
–2 추천
한번 Draw해줘야 높이를 구하실 수있을거에요

postDelayed로 시간 조금만 줘보세요.
q1212 (26,020 포인트) 님이 2013년 6월 19일 답변
q1212님 답변 감사합니다.
...