我希望有人解释以下两种行为。
我从这个屏幕开始:
当我按下键盘的“完成”按钮时,我按预期返回到原始状态。换句话说,隐藏的框再次可见并且光标消失了(EditText 不再具有焦点)。发生这种情况的原因是我只有一个听众在等待按下“完成”按钮。当这种情况发生时,我会调用clearFocus()
视图EditText
。然后我有一个OnFocusChangeListener
根据 EditText 是否有焦点使所有框不可见/可见。
但是,当我使用以下属性设置祖先布局(即父或祖父 RelativeLayout)时,我只会得到这种预期的行为:android:focusableInTouchMode="true"
否则,我会得到以下屏幕:
当clearFocus()
被调用时,它会跳到层次结构中的下一个孩子,即“当前城市”并给予该EditText
焦点(并隐藏键盘,但这是预期行为的一部分)。
如果我没有设置,单击屏幕 1 中的“当前城市”也会导致屏幕 3 android:focusableInTouchMode="true"
。换句话说,它保持在“当前城市”并且不会失去焦点。
问题
有人可以解释发生了什么吗?为什么遗漏android:focusableInTouchMode="true"
会导致这种奇怪的行为?