在我的应用程序中,当单击一个按钮时,会出现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();
}
答案 0 :(得分:0)
我猜这可能是由于全景[所谓的'提取']风景的IME模式 - 因为它会模糊整个用户界面 [这会违反直觉对于用户] ,直到用户点击其中一个输入 [因此确认他们真的希望IME弹出并采取它需要的任何房地产]时才会显示
作为应对此问题的可行方法,请尝试设置
plate1.setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI);
for eachi EditText
或使用相应的
android:imeOptions="flagNoExtractUi"
布局文件中EditText
的属性。