最近在接触一些设计焦点控制的APP开发。对android上关于view的焦点事件做了一下梳理,简单整理如下。
android 本身提供了一套针对控件焦点切换的处理机制。这里我先将涉及的属性和方法列举如下:
android:focusable 对应的方法:setFocusable(boolean isFocusable)说明:控制一个View是否可以获得焦点
android:focusableInTouchMode对应的方法:setFocusableInTouchMode(boolean isFocusableInTouchMode) 说明:设置一个View是否可在触摸模式下获得焦点
android:nextFocusUp 对应的方法:setNextFocusUpId(int id) 说明:设定当切换的焦点是FOCUS_UP是焦点所指向的view
android:nextFocusDown 对应的方法:setNextFocusDownId(int id) 说明:设定当切换的焦点是FOCUS_Down是焦点所指向的view
android:nextFocusLeft对应的方法:setNextFocusLeftId(int id) 说明:设定当切换的焦点是FOCUS_LEFT是焦点所指向的view
android:nextFocusRight对应的方法:setNextFocusRightd(int id) 说明:设定当切换的焦点是FOCUS_RIGHT是焦点所指向的view
android:nextFocusForward对应的方法:setNextFocusForwardId(int id) 说明:设定当切换的焦点是FOCUS_FORWARD是焦点所指向的view
常用方法:setFocusable(boolean isFocusable)
setFocusableInTouchMode(boolean isFocusableInTouchMode)
clearFocus()
findFocus()
focusSearch(int id)
requestFocus(int direction, Rect previouslyFocusedRect)
requestFocus(int direction)
setOnFocusChangeListener(View.OnFocusChangeListener l)