Jeśli edittext jest aktualnie skupiony i użytkownik kliknie poza DialogFragment; Chcę, żeby klawiatura na ekranie zniknęła. mogę zmusić go do pracy dla kiedy DialogFragment została zwolniona w ten sposób:Jak ukryć klawiaturę ekranową, gdy DialogFragment jest anulowany przez zdarzenie 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();
}
Jednakże jeśli próbuję samo dla kiedy to został odwołany przez dotknięcie zewnątrz dialogfragment, to nie będzie działać. Staram się to zrobić poprzez nadpisanie onCancel tak:
@Override
public void onCancel(DialogInterface dialog){
imm.hideSoftInputFromWindow(getView().getWindowToken(), 0);
super.onCancel(dialog);
}
Funkcja jest wywoływana, gdy poza zdarzenie dotykowy dzieje, ale klawiatura nie jest usuwany.
Trzeba zastąpić 'onDismiss()' 'w sposób DialogFragment' i ukryj klawiaturę. – Clans