如果当前关注了edittext,并且用户在DialogFragment外部单击;我希望屏幕键盘消失.当DialogFragment以这种方式被解雇时,我可以让它工作:
InputMethodManager imm;
public View onCreateView(LayoutInflater inflator, ViewGroup container,
Bundle savedInstanceState) {
imm = (InputMethodManager)getActivity().getSystemService(Activity.INPUT_METHOD_SERVICE);
...}
@Override
public void dismiss(){
imm.hideSoftInputFromWindow(getView().getWindowToken(), 0);
super.dismiss();
}
但是,如果我通过触摸dialogfragment外部取消它时尝试同样的事情,它将无法工作.我试图通过覆盖onCancel这样做:
@Override
public void onCancel(DialogInterface dialog){
imm.hideSoftInputFromWindow(getView().getWindowToken(), 0);
super.onCancel(dialog);
}
当外部触摸事件发生时调用该函数,但不删除键盘.