某种情况下,点击EditText吊起软键盘后,再点击软键盘中的“下一项”或者“下一步”按钮时崩溃?
一、场景演示
二、报错提示
focus search returned a view that wasn't able to take focus!
翻译:
三、问题解决
在吊起键盘的EditText中加上这条属性:android:imeOptions="actionDone"
如下:
<EditText
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:imeOptions="actionDone" />
这样键盘吊起后就不会出现“下一项”、“下一步”这样的按钮。
假如你想留住这个按钮,且实现点击下一项的功能,这时候你需要实现EditText的按钮监听并判断按钮后进行焦点转移,并在回调中返回True
四、原因分析
点击下一步时,由于系统没有找到下一个聚焦的EditText,所以引起奔溃,
可能因为你列表的下一个item没有EditText,
或者你没有在 EditText的 按键监听回调里 写焦点转移的代码。
五、问题产生的前置条件:软键盘的“下一项”按钮为何会出现?
深海这样认为:
当EditText放在RecyclerView中时,系统会认定可能有下一项输入要求,
所以吊起的软键盘会有“下一项”/“下一步”这样的按钮
而EditText放在非列表的页面时,则没有这个按钮