作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
出于某种原因,我的 EditText 表现得很奇怪。
我的编辑文本包含在滚动的 RecyclerView 中。当我点击编辑文本时,小键盘显示得很好,当点击小键盘上的“完成”时,小键盘关闭但显示完整的键盘。有没有想过问题是什么或防止全键盘出现的方法?谢谢。
EDIT::我设法解决了 Done 问题,但是当键盘打开并且我向下滚动 recyclerview 时,键盘关闭并显示完整键盘。可能是以下答案之一中提到的焦点问题。
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
InputMethodManager imm = (InputMethodManager) v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
invAdded.clearFocus();
return true;
}
return false;
}
原创::
<EditText
android:id="@+id/di_inventory_added"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.2"
android:background="@android:color/transparent"
android:inputType="numberDecimal"
android:singleLine="true"
android:imeOptions="actionDone"
/>
和容器布局
<android.support.v7.widget.RecyclerView
android:layout_below="@id/include"
android:id="@+id/daily_inventory_recycle_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
还有actioneditlistener
invAdded.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
invAdded.clearFocus();
}
return false;
}
});
最佳答案
看起来你没有在 onEditorAction
回调方法中返回正确的 bool 值。
如果你想隐藏键盘,你必须通过在 onEditorAction
方法中返回 true
来告诉系统你已经消耗了 done
按钮事件。
invAdded.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
invAdded.clearFocus();
}
return true; // return true(event consumed)
}
});
我还没有测试过。这只是一个猜测,您可以尝试一下。希望对您有所帮助。
关于Android Bug,单击 EditText 键盘完成后 RecyclerView 打开全键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34805627/
我是一名优秀的程序员,十分优秀!