当前位置: 首页 > 知识库问答 >
问题:

软键盘隐藏调用在view.post()中不能正常工作,但在runOnUIThread()中可以正常工作

权浩阔
2023-03-14

当我(从片段内部)调用runOnUiThread()中隐藏键盘时,键盘会隐藏,但当我从activity.getCurrentFocus().post()中执行同样的操作时,键盘不会隐藏。

1)以下代码工作

activity.runOnUiThread(new Runnable()
                    {
                        @Override
                        public void run()
                        {
                            InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
                            imm.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
                        }
            });
 activity.getCurrentFocus().post(new Runnable()
                    {
                        @Override
                        public void run()
                        {
                            InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
                            imm.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
                        }
            });

能不能有人好心解释一下,提前谢谢!

共有1个答案

郝峰
2023-03-14

我认为当您执行activity.getCurrentFocus().post()时,它是在视图完成布局、重新调整大小和更新之后执行的。因此,如果您的视图不需要更新,则不会执行。您是否尝试添加日志/断点以查看是否执行了它?如果它被执行,它可能是键盘刚刚恢复。

 类似资料:
  • 我有一个对soap Web服务的请求,该服务在SoapUi中运行良好。我想在python脚本中调用此Web服务。 我尝试了一些模块:zeep,泡沫,...但是我总是有一个SSL错误。 以下是信息: https://37.71XXXXXXACONYX?wsdl 基本认证:用户名密码 身份验证类型:抢占式 我在SoapUi中提供了xml。 有人有什么想法吗? 谢谢!! 我试过:

  • 我正在处理碎片,所以在我的视图寻呼机中有三个碎片 因此,我在第一个片段中使用了方法,所以当我从一个片段切换到另一个片段并返回到第一个片段时,我的方法不起作用 所以有人给出解决方案吗

  • 我正在使用CodeIgniter3.0。6.目前正在一页网站上工作,该网站具有搜索功能。我在codeigniter的配置文件中启用了csrf_保护选项,并使用form_open()函数创建表单。 当我按下submit按钮时,搜索功能运行良好,但在提交表单后,当我刷新页面时(使用任何刷新页面的功能,如从keybord或浏览器刷新),CSRF不工作,并显示错误“您请求的操作不允许”。 注意:我使用po

  • 所以,我有一个RDD,它有如下键值对。 在groupByKey之后,我希望得到这样的东西 然而,我发现即使在执行groupByKey()之后,也会重复相同的键。键值对的总数肯定会减少,但仍然有许多重复的键。有什么问题吗? 键的类型基本上是一个Java类,其中包含整数类型的字段。火花是否也在考虑对象字段以外的东西来识别这些对象?

  • 我正试图在按下某个按钮时弹出一个警报对话框。我首先使用了Android Developer的示例代码而不是'这不起作用,所以我根据在这个站点上发现的情况进行了更改,但是现在我的程序在按下按钮后被迫停止。 就你的知识而言,这是在第二个不同于主要的活动中完成的。不确定这是否重要.... ‘ 碰撞日志:“03-25 19:34:24.373:E/AndroidRuntime(18828):致命异常:ma

  • 2,错误{org.apache.directory.server.LDAP.ldapserver}-ERR_171无法将LDAP服务(10,389)绑定到服务注册表。java.net.BindException:已在使用的地址 请帮忙谢谢 --------提示------------------- JAVA_HOME环境变量设置为/opt/java CARBON_HOME环境变量设置为/mnt/1