网上无非就是告诉你要加上android:descendantFocusability=”blocksDescendants”
然后就抄来抄去的万事。
其实本来我是拒绝的。
上次看源码还是7年前。
但是公司最近事情少,实在无聊。就点进去了解了一下。
private void recoverFocusFromState() {
if (!mPreserveFocusAfterLayout || mAdapter == null || !hasFocus()
|| getDescendantFocusability() == FOCUS_BLOCK_DESCENDANTS
|| (getDescendantFocusability() == FOCUS_BEFORE_DESCENDANTS && isFocused())) {
// No-op if either of these cases happens:
// 1. RV has no focus, or 2. RV blocks focus to its children, or 3. RV takes focus
// before its children and is focused (i.e. it already stole the focus away from its
// descendants).
return;
}
可以看到。这里有用到我们的设置项。
其实就是不再去检查子view的焦点。所以直接返回
网友评论