1.getLeft getRight getBottom getTop (getX getY 移动后要变) (getTranslationX getTranlationY移动要变)方法和属性 都是相对于父布局的。布局
2.Android touch事件传递必须经过super方法传递spa
1.action_down:Activity : super.dispatchTouchEvent()-> e:ViewGroup:super.dispatchTouchEvent()-> a:ViewGroup:onInterceptTouchEvent()-> a.1.return true->b:ViewGroup:onTouchEvent()->b.1.return false->Activity:onTouchEvent->over b.2.return true->over a.2.return false->c:View:super.dispatchTouchEvent()->d:View:onTouchEvent()-> d.1.return false->c.1.return false->f:ViewGroup:onTouchEvent()-> f.1.return false->e.1.return false ->Activity:onTouchEvent->over f.2.return true->e.2.return true->over d.2.return true -> c.2.return true -> e.2.return true ->over 2.几点返回值的重要说明; 2.1.Activity :onTouchEvent方法调不调用取决于ViewGroup的dispatchTouchEvent的返回值,true,不执行,false,要执行 2.2.ViewGroup:dispatchTouchEvent返回值是ViewGroup:onTouchEvent(若是返回true及其返回true,返回false及其返回false)影响和受子 View:dispatchTouchEvent(受View:onTouchEvent影响,若是返回true及其返回true,返回false及其返回false) 的返回值影响(前提是View:dispatchTouchEvent返回true及ViewGroup:onTouchEvent没有调用),返回true及其返回true,返回false及其返回false。 若是ViewGroup的onInterceptTouchEvent返回true,touch事件是不会被传递下去的。 2.3.action_up等后续touch动做的传递,受action_down在哪被消耗(dispatchTouchEvent返回true)才能传递到哪,并且必须一层一层被消耗,才能一层一层传递下去 2.4.Activity ViewGroup View的相应的super.dispatchTouchEvent super.onInterceptTouchEvent super.onTouchEvent都返回false,其中View.onTouchEvent如 果view为clickable(设置click监听器等会让其成为clickable)会返回true。
3.View三个过程 onMeasure onLayout onDrawblog
3.1 由于子view的measurespec是由viewgroup的getChildMeasureSpec()决定的,当子view参数是wrap_content或者是事件
match_parent,他的specmode是at_most,他的宽高(View.getDefaultSize() )是在父布局里能够获得的最大宽高。get