requestFocus->
requestFocusNoSearch->
handleFocusGainInternal 处理焦点变化,并通知treeObserver
->onFocusChange 回调到listener里
->refreshDrawableState 更新drawable ->
drawableStateChanged 获取View当前的state,并获取到View的background、highlight、foreground的drawable对象,经过drawable.isStateful()判断、通过drawable.setstate(state)修改。
selector对应的是实现类是StateListDrawable,重写了drawable的isStateful() 返回true, 因此会调用到drawable的setstate
drawable.setstate(state) ->
onstatechange(int[] state) ->
StateListDrawable.onStateChange->
StateListDrawable.selectDrawable(idx)->
获取index对应的drawable对象-> invalidateSelf更新样式