【问题标题】:Virtual keyboard status虚拟键盘状态
【发布时间】:2012-03-30 08:46:13
【问题描述】:

有没有办法知道虚拟键盘在运行时被用户隐藏了。 在标记我重复的问题之前,请先了解我的问题,因为它看起来很重复,而且我还发现了很多与相关主题相关的问题。但没有找到任何答案。

我的问题是在某些事件发生期间,比如说方向改变,我需要知道用户是否最小化了键盘。以便我采取相应的措施。我试图非常具体地提出问题,即使任何解释都可以随意提问。任何帮助将不胜感激。在此先感谢 我的尝试

final View activityRootView = findViewById(R.id.ll_main_root);
                activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
                    @Override
                    public void onGlobalLayout() {
                        int heightDiff = activityRootView.getRootView().getHeight() - activityRootView.getHeight();
                        if (heightDiff > 100) { // if more than 100 pixels, its probably a keyboard...
                            Toast.makeText(MainActivity.instance, "KeyBoarad" + value, Toast.LENGTH_LONG).show();
                        }
                     }
                });

【问题讨论】:

    标签: android android-virtual-keyboard


    【解决方案1】:

    这个几乎是重复的:How to capture the "virtual keyboard show/hide" event in Android?

    还有这个:Android EditText, soft keyboard show/hide event?

    结论似乎是没有办法捕捉到这一点,有些人使用黑客来捕捉屏幕大小并使用该参数。

    【讨论】:

    • 有问题。这个 hack 不起作用。一定有出路:-(
    • 嘿,我的客人浪费了无数个小时 :) 您是否考虑过另一种解决问题的方法?每当您进行配置更改时,您都可以检查键盘是否打开,然后进行相应处理。
    • 哈哈,我别无选择,只能试一试。希望有人知道如何做到这一点。我不知道这个 hack 对我不起作用。屏幕尺寸和高度一
    • 从这里我只尝试了我的代码,但部分已经完成。但是在使用 onConfigurationChange() 方法时,即使我得到键盘状态,布局也会受到干扰。你能建议我演示一下 onOrientationchangeEventListner 的实现吗?
    【解决方案2】:

    嘿,这可能会迟到,但只是为了查询和我的建议。我在某种程度上面临着同样的问题。实际上,在我的情况下,当方向改变时我的键盘被最小化了,即使它在方向改变之前是可见的。所以我使用了android:windowSoftInputMode="stateUnchanged",这样我的键盘即使在方向改变时仍然可见。

    可能还有一个问题是你想改变可见性,所以你可以使用toggleSoftInputFromWindow (IBinder windowToken, int showFlags, int hideFlags)

    具体

    InputMethodManager inputMgr = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); inputMgr.toggleSoftInput(0, 0);

    希望对您有所帮助。

    【讨论】:

    • 虽然帖子很旧,而且我已经留下了那部分代码,但仍然只是说巧合我需要你所面临的一些东西,所以我支持你,并会尝试你的代码。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2013-01-03
    • 2015-01-02
    • 2013-04-02
    • 1970-01-01
    • 1970-01-01
    • 2013-08-01
    • 2012-01-13
    • 1970-01-01
    相关资源
    最近更新 更多