java.lang.Object | |
↳ | android.view.ViewTreeObserver |
Nested Classes | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
ViewTreeObserver.OnGlobalFocusChangeListener | Interface definition for a callback to be invoked when the focus state within the view tree changes. 자식뷰들의 포커스가 변경되는 것을 알 수 있다. | ||||||||||
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. 어떤 뷰의 레이아웃이나 가시성이 변경되는 것을 알 수 있다. | ||||||||||
ViewTreeObserver.OnPreDrawListener | Interface definition for a callback to be invoked when the view tree is about to be drawn. 화면에 그려지기 전에 특정한 작업을 할 수 있다. | ||||||||||
ViewTreeObserver.OnScrollChangedListener | Interface definition for a callback to be invoked when something in the view tree has been scrolled. | ||||||||||
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)|작성자 동동
'구글과인터넷 > 안드로이드' 카테고리의 다른 글
안드로이드 - (Java OpenGL) vs (JNI OpenGL) vs (NativeActivity OpenGL) (0) | 2012.12.12 |
---|---|
android 안드로이드 - ondraw전에 수행해야 할 일이 있는 경우 (onPreDrawListener 등록) (0) | 2012.12.12 |
android 안드로이드 스크롤바 관련 (0) | 2012.12.12 |