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發生變化時觸發