android - 显示和隐藏软键盘不起作用

标签 android android-softkeyboard

不确定它是否相关,但我使用的是 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/

相关文章:

android - 如何将编译好的 apk 放到 jenkins job artifacts 中?

java - 自定义 Facebook 登录以与 MethodChannel 一起使用

android - 键盘打开时 fragment 不会调整大小

android - 聚焦edittext时如何显示软键盘

android - 如何在候选 View 上显示候选 View 和回收器选项卡 View 位置?

android - 在 Android 键盘上检测返回事件

当 ListView 处于 ScrollView 中时,未检查自定义 ListView 的android复选框

java - 如何动态引用 daraja API mpesa xpress 请求中的结账 RequestId

android - 使用软键盘向上移动一种布局,但将一种布局保留在底部

java - 有很多 Activity 好吗