Softkeyboard in Fragment does not show for edittext

China☆狼群 提交于 2019-12-11 04:23:00

问题


I have a simple application with two fragments. The right fragment is being replaced. An edittext inside has requestfocus, but does not show the keyboard.

On Android 4.2.2 it works fine, on 2.3.x it does not, neither in emulator nor on real device. On the emulator I can type with my windows keyboard although the soft keyboard is not showing.

I have not hidden the keyboard on purpose. Showing the keyboard with following code only works for 4.2.x.

InputMethodManager imgr = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
imgr.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);

Any hint?


回答1:


Doing more research I have found the following.

Since I need the focus on the edittext, I first remove the focus and then put it back:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        myFilter.clearFocus();
}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    myFilter.requestFocus();
}

The keyboard is not shown, but once the user clicks on the edittext, it comes up.

This still does not work on the 2.3 emulator, but it works on the real device. Seems to be some kind of 2.3 bug.




回答2:


This seems to be some kind of evergreen problem. My app just had it on an Android Pie device whereas the problem did not appear on an Android L device. The solution of Gunnar Bernstein did work, but I wanted the EditText to be without focus initially. Based on some other answers on SO I came up with the following solution:

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)

        CoroutineScope(Dispatchers.Main).launch {
            delay(100)
            my_edit_view.clearFocus()
        }
    }

Hope this helps someone else as well.



来源:https://stackoverflow.com/questions/16389380/softkeyboard-in-fragment-does-not-show-for-edittext

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!