본문 바로가기

구글과인터넷/안드로이드

android 안드로이드 - ondraw전에 수행해야 할 일이 있는 경우 (onPreDrawListener 등록)

on draw에서 모든 화면 업데이트를 처리 해야 하지만, 

ondraw 직전에 뭔가 꼭 해야 하는 일이 있다면 

아래와 같이 OnpreDrawListener를 등록 해서 사용할수 있다.


View viewLayer = findViewById(R.id.layout_total_container); // 일반적으로 top 레이어

ViewTreeObserver vto = viewLayer.getViewTreeObserver();  //옵저버 얻기

  });


   
  vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
   
   @Override
   public boolean onPreDraw() {
    // TODO Auto-generated method stub
    return false;
   }
  });


이와 비슷한 리스너로는  아래와 같은 것들이 있다.


//터치모드 변경 리스너 등록

vto.addOnTouchModeChangeListener(new ViewTreeObserver.OnTouchModeChangeListener() 

//자식뷰의 포커스 변경 이벤트 리스너 등록

vto.addOnGlobalFocusChangeListener(new ViewTreeObserver.OnGlobalFocusChangeListener() 

vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() 

 vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() 
 vto.
addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() 


자세한 사항은 아래의 링크에서 확인하시길

http://blog.naver.com/dong277?Redirect=Log&logNo=130082728620


/////////////////////////////////////////////////////////////////////////////////////////