android view的一些常用觸發方法

onFinishInflate() 當View中所有的子控件 均被映射成xml後觸發
主要用於:獲取子控件的引用:例如下面代碼

mTitleTextView=(TextView) findViewById(R.id.tv_header_title);
mRightButton.setBackgroundDrawable(this.mRightButtonBg);
mTitleTextView.setBackgroundDrawable(context.getResources().getDrawable(R.drawable.refresh));

onMeasure(int, int) 確定所有子元素的大小

onLayout(boolean, int, int, int, int) 當View分配所有的子元素的大小和位置時觸發

onSizeChanged(int, int, int, int) 當view的大小發生變化時觸發

主要用於屏幕的大小改變時,需要根據屏幕寬高來決定的其他變量可以在這裏進行初始化操作,這個方法在onCreate之後onDraw之前調用

onDraw(Canvas) view渲染內容的細節

onKeyDown(int, KeyEvent) 有按鍵按下後觸發

onKeyUp(int, KeyEvent) 有按鍵按下後彈起時觸發

onTrackballEvent(MotionEvent) 軌跡球事件

onTouchEvent(MotionEvent) 觸屏事件

onFocusChanged(boolean, int, Rect) 當View獲取 或失去焦點時觸發

onWindowFocusChanged(boolean) 當窗口包含的view獲取或失去焦點時觸發

onAttachedToWindow() 當view被附着到一個窗口時觸發

onAttachedToWindow是在第一次onDraw前調用的。也就是我們寫的View在沒有繪製出來時調用的,但只會調用一次
在onAttachedToWindow這方法中做初始化工作,比如註冊一些廣播
生命週期爲onCreate->onStart->onResume->onAttachedToWindow

onDetachedFromWindow() 當view離開附着的窗口時觸發,

我們銷燬View的時候。我們寫的這個View不再顯示。

這時我們就在這個方法做一些收尾工作,如:取消廣播註冊等等
一般用於valueAnimator.cancel()取消動畫

onWindowVisibilityChanged(int) 當窗口中包含的可見的view發生變化時觸發

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章