3

我有一个带有两个片段的简单应用程序。正在替换正确的片段。里面的一个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);

有什么提示吗?

4

2 回答 2

3

做更多的研究,我发现了以下内容。

由于我需要将焦点放在edittext上,所以我先移除焦点,然后将其放回:

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

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

    myFilter.requestFocus();
}

键盘没有显示,但是一旦用户单击编辑文本,它就会出现。

这仍然不适用于 2.3 模拟器,但它适用于真实设备。似乎是某种2.3错误。

于 2013-05-05T22:09:02.163 回答
2

这似乎是某种常青问题。我的应用程序只是在 Android Pie 设备上安装了它,而问题没有出现在 Android L 设备上。Gunnar Bernstein 的解决方案确实有效,但我希望 EditText 最初没有焦点。基于SO上的其他一些答案,我想出了以下解决方案:

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

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

希望这对其他人也有帮助。

于 2019-08-11T03:41:49.423 回答