我在Recycler视图的项目中有两个Edit文本,我为每个编辑文本设置了一个焦点更改侦听器。两者的输入类型是文本。焦点更改侦听器适用于第一个编辑文本,但对于第二个,即使我从键盘单击检查按钮(右下角)它也不会失去焦点。可能是什么问题?
holder.textView.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean b) {
//textView.setGravity(Gravity.LEFT);
if(b){
holder.textView.setTextColor(getResources().getColor(R.color.TabYellow));
discreteScrollView.scrollToPosition(infiniteAdapter.getClosestPosition(position));
}
else {
Toast.makeText(getActivity(),"Input loose focus",Toast.LENGTH_SHORT).show();
InputMethodManager imm = (InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
holder.textView.setTextColor(getResources().getColor(R.color.white));
// textView.setGravity(Gravity.CENTER);
}
}
});
holder.newToDo.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean b) {
if(b){
discreteScrollView.scrollToPosition(infiniteAdapter.getClosestPosition(position));
}
else {
Toast.makeText(getActivity(),"Input loose focus",Toast.LENGTH_SHORT).show();
InputMethodManager imm = (InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
}
});`
答案 0 :(得分:0)
虽然创建这种类型的布局不是一个好方法,但你仍然可以做的是添加键盘的keyEventListner并检查键的类型并插入将焦点传递到另一个位置的代码。编辑文字。