Softkeyboard在片段不显示的EditText(Softkeyboard in Fragme

2019-10-18 02:31发布

我有两个片段的简单应用程序。 正确的片段被替换。 一个EditText内部有requestFocus的,但不显示键盘。

在Android 4.2.2它工作正常,在2.3.x版本没有,无论是在模拟器上也没有真正的设备。 在模拟器上,我可以用我的Windows键盘键入虽然软键盘没有显示。

我没有有意隐藏了键盘。 显示键盘与下面的代码仅适用于4.2.x.

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

任何提示?

Answer 1:

这样做更多的研究,我发现以下。

因为我需要专注于EditText上,我第一次清除病灶,然后把它放回去:

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

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

    myFilter.requestFocus();
}

键盘没有显示,但一旦用户点击的EditText,它出现。

这仍然没有在2.3模拟器上工作,但它的工作原理在实际设备上。 似乎是某种2.3的bug。



Answer 2:

这似乎是某种常绿的问题。 我的应用程序只是有它在Android设备馅饼,而这个问题没有出现在Android L移动设备上。 贡纳尔·伯恩斯坦的解决方案做了工作,但我希望的EditText是没有焦点开始。 基于SO一些其他的答案,我想出了以下解决方案:

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

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

希望这可以帮助别人也是如此。



文章来源: Softkeyboard in Fragment does not show for edittext