Nếu edittext hiện được tập trung và người dùng nhấp vào bên ngoài DialogFragment; Tôi muốn bàn phím trên màn hình biến mất. Tôi có thể lấy nó để làm việc cho khi DialogFragment đang đuổi theo cách này:Cách ẩn bàn phím ảo khi DialogFragment bị hủy bởi sự kiện setCanceledOnTouchOutside
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();
}
Tuy nhiên, nếu tôi cố gắng điều tương tự cho khi nó bị hủy bằng cách chạm bên ngoài của dialogfragment, nó sẽ không làm việc. Tôi đang cố gắng thực hiện điều này bằng cách ghi đè lênHủy như vậy:
@Override
public void onCancel(DialogInterface dialog){
imm.hideSoftInputFromWindow(getView().getWindowToken(), 0);
super.onCancel(dialog);
}
Chức năng này được gọi khi sự kiện cảm ứng bên ngoài xảy ra, nhưng bàn phím không bị xóa.
Bạn cần phải ghi đè 'onDismiss() 'phương pháp trong' bạn DialogFragment' và ẩn bàn phím từ đó. – Clans