不确定它是否相关,但我使用的是 LG G3 和 Android 4.4.2
我有一个要显示键盘的 fragment ,所以我执行了以下操作:
txtContact = (EditText) rootView.findViewById(R.id.txtContact);
InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(txtContact.getWindowToken(), InputMethodManager.SHOW_IMPLICIT);
布局是这样的,包括相关字段的 requestFocus:
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textMultiLine"
android:ems="10"
android:lines="10"
android:layout_margin="10dp"
android:id="@+id/txtContact">
<requestFocus />
</EditText>
当打开这个 fragment 时,光标在它应该在的地方但键盘不在那里,只有在字段内部点击时,它们才会出现。
另一个问题与第一个问题相反。在另一个 fragment 上,无论如何,我都想在 fragment 打开时隐藏键盘。这样做的原因是,用户可以在关闭另一个显示键盘的 fragment 后打开此 fragment ,所以我想确保它关闭,请注意我不知道是否显示了键盘,我希望它如果它是打开的,则保持关闭;如果它打开,则保持关闭。我在这个 fragment 中只有一个 ListView,所以我做了以下事情:
lv = (ListView) rootView.findViewById(android.R.id.list);
InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(lv.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
但它拒绝对键盘产生任何影响并且它保持打开状态。
我做错了什么?
最佳答案
尝试调用 onResume()
或 post()
中的代码作为 Runnable
。
如果你的 Fragment
是一个 DialogFragment
,在 onCreateView( )
应该足够了。
关于android - 显示和隐藏软键盘不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28929739/