В моем приложении, когда нажата кнопка, появляется диалоговое окно, затем отображается мягкая клавиатура, а затем, если я меняю ориентационную клавиатуру, всегда отображается. Но если я обедаю приложение на пейзаж, то на первой клавиатуре не появляется. Любая идея, почему клавиатура не отображается?Клавиатура на DialogFragment в ландшафтном режиме
public class PlateDialogFragment extends DialogFragment {
static View view;
public static PlateDialogFragment newInstance(View v) {
view=v;
PlateDialogFragment f = new PlateDialogFragment();
f.setCancelable(false);
f.setStyle(STYLE_NO_FRAME, STYLE_NO_TITLE);
return f;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Dialog dialog = super.onCreateDialog(savedInstanceState);
dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
return dialog;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_dialog_plate, container, false);
setRetainInstance(false);
Button cancel = (Button) v.findViewById(R.id.exit);
cancel.setOnClickListener(cancelDialogListener);
Button next = (Button) v.findViewById(R.id.next);
next.setOnClickListener(nextDialogListener);
plate1 = (EditText) v.findViewById(R.id.plate1);
plate1.setOnFocusChangeListener(plateFocusChanged);
plate1.addTextChangedListener(plate1Watcher);
plate2 = (EditText) v.findViewById(R.id.plate2);
plate2.setOnFocusChangeListener(plateFocusChanged);
plate2.addTextChangedListener(plate2Watcher);
plate3 = (EditText) v.findViewById(R.id.plate3);
plate3.setOnFocusChangeListener(plateFocusChanged);
plate3.addTextChangedListener(plate3Watcher);
plate3.setOnEditorActionListener(plate3EditorActionListener);
plate1.requestFocus();
getDialog().getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_VISIBLE);
return v;
}
@Override
public void onDetach() {
Log.i("onDetach", "onDetach");
InputMethodManager inputMethodManager = (InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(plate1.getWindowToken(), 0);
super.onDetach();
}
Он уже установлен. – MSr
Хм, тогда у меня нет идей. Я буду обновлять, если что-то приходит на ум –
Благодарим за внимание. – MSr