=================================
=================================
=================================
출처: http://blog.naver.com/dong277?Redirect=Log&logNo=130082728620
java.lang.Object | |
↳ | android.view.ViewTreeObserver |
Nested Classes | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
interface | ViewTreeObserver.OnGlobalFocusChangeListener | Interface definition for a callback to be invoked when the focus state within the view tree changes. 자식뷰들의 포커스가 변경되는 것을 알 수 있다. | |||||||||
interface | ViewTreeObserver.OnGlobalLayoutListener | Interface definition for a callback to be invoked when the global layout state or the visibility of views within the view tree changes. 어떤 뷰의 레이아웃이나 가시성이 변경되는 것을 알 수 있다. | |||||||||
interface | ViewTreeObserver.OnPreDrawListener | Interface definition for a callback to be invoked when the view tree is about to be drawn. 화면에 그려지기 전에 특정한 작업을 할 수 있다. |
|||||||||
interface | ViewTreeObserver.OnScrollChangedListener | Interface definition for a callback to be invoked when something in the view tree has been scrolled. | |||||||||
interface | ViewTreeObserver.OnTouchModeChangeListener | Interface definition for a callback to be invoked when the touch mode changes. 터치모드가 변경되는 것을 알 수 있다. |
사용예)
View all = findViewById(R.id.layout_total_container);//레이아웃xml의 첫번째 레이아웃 아이디
ViewTreeObserver vto = all.getViewTreeObserver();//옵저버 얻기
//터치모드 변경 리스너 등록
vto.addOnTouchModeChangeListener(new ViewTreeObserver.OnTouchModeChangeListener() {
public void onTouchModeChanged(boolean isInTouchMode) {
//To do something
}
});
//자식뷰의 포커스 변경 이벤트 리스너 등록
vto.addOnGlobalFocusChangeListener(new ViewTreeObserver.OnGlobalFocusChangeListener() {
public void onGlobalFocusChanged(View oldFocus, View newFocus) {
//oldFocus : 이전 포커싱되었던 뷰
//newFocus : 현재 포커싱된 뷰
if (oldFocus != null && newFocus != null)
//To do something
}
});
vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
// TODO Auto-generated method stub
}
});
vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
@Override
public boolean onPreDraw() {
// TODO Auto-generated method stub
return false;
}
});
vto.addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() {
@Override
public void onScrollChanged() {
// TODO Auto-generated method stub
}
});
[출처] 안드로이드 화면 관련 이벤트 처리(ViewTreeObserver)|작성자 동동
=================================
=================================
=================================
'스마트기기개발관련 > 안드로이드 개발' 카테고리의 다른 글
android 안드로이드 Eclipse + Android NDK + CDT !! - NDK에서 include GLES/gl.h 가 에러가 난다면? (0) | 2012.11.04 |
---|---|
android 안드로이드 아이콘 크기 관련 (0) | 2012.10.25 |
android 안드로이드 - ondraw전에 수행해야 할 일이 있는 경우 (onPreDrawListener 등록) (0) | 2012.10.23 |
android 안드로이드 스크롤바 관련 (1) | 2012.10.18 |
android|안드로이드 안드로이드 로컬 설치옵션 설정 (0) | 2012.10.18 |