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

键盘和弹出窗口在按下时关闭

常茂
2023-03-14

我正在开发一个Android应用程序。在页面底部的一个活动中,我显示了一个popupWindow,并用这个popupWindow替换了键盘。这个popupWindow内部有一个搜索视图,所以当搜索视图处于焦点时,键盘将被显示,popupWindow将向上滑动。现在,当我按下后退按钮(手机的后退按钮),然后键盘和弹出窗口都被关闭。所以,我想在这里只关闭键盘,弹出窗口应该在键盘关闭后向下滑动。

我尝试了以下事情:

setBackgroundDrawable(new BitmapDrawable());
poupupWindow.setFocusable(true);

在popupWindow上也应用了KeyListner,但它不起作用。

     popupWindow.getContentView().setOnKeyListener(new View.OnKeyListener() {
                    @Override
                    public boolean onKey(View v, int keyCode, KeyEvent event) {

                   if (keyCode ==  KeyEvent.KEYCODE_BACK &&
                                event.getAction() == KeyEvent.ACTION_DOWN)              {
                   return true;                        
} return false;
                   }
                });

如果有人知道这件事,请帮助我。非常感谢advanced:)

共有1个答案

陈法
2023-03-14

使用onKeyDown()方法添加代码以在按键侦听器中隐藏键盘。

        boolean isKeyboardHidden=false;
        @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
         if (event.getAction() == KeyEvent.ACTION_DOWN) {
           switch (event.getKeyCode()) {
                case  KeyEvent.KEYCODE_BACK;
                       if(!isKeyboardHidden && popupview.isFocused())                                
                         {
                          InputMethodManager imm = 
                                   (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);

                          imm.hideSoftInputFromWindow(v.getWindowToken(), 0);

                          isKeyboardHidden=true;
                         }
                return true;                        
          }
         }
        return super.onKeyDown(keyCode, event);
        }
 类似资料:
  • 我想在JavaFX中创建特定的组件。在 onClick 事件后显示 poupup 的按钮。 情景: > < li> 我们单击按钮 弹出显示下面的按钮(如图片上所示)

  • 问题内容: 我通过window.open打开了一个弹出窗口。使用JavaScript打开,我想在关闭此弹出窗口时刷新父页面。(onclose事件?)我该怎么办? 问题答案: 您可以使用“ window.opener”访问父窗口,因此,在子窗口中编写如下内容:

  • 我有这段代码显示了一个按钮谁显示一个弹出窗口,我希望用户能够关闭弹出窗口点击它的外部时,它是打开的。

  • 所以我只是想知道是否有人知道在JavaFX 8中关闭弹出窗口的正确方法。例如,如果我的弹出窗口上有一个取消按钮,当按下取消按钮时,我应该使用什么方法来摆脱弹出窗口?我目前只是使用隐藏()方法。这让我有点害怕,因为我不确定弹出窗口是否在后台某处徘徊并且仍然需要关闭。但是,当我在这里查看java文档时,我没有看到任何关闭()方法,我也没有在我的IDE自动完成中看到关闭()方法。不过,我确实在文档中看到

  • 问题内容: 我在JPopupMenu中有一个JComboBox(以及其他组件)。事实证明,每当我打开组合框的弹出窗口(以选择一个项目)时,父级JPopupMenu都会关闭。我一直在尝试找到一种方法来覆盖此功能,但无济于事。 有没有人建议防止关闭父级JPopupMenu?谢谢! 问题答案: 这不可能直接实现,很难覆盖已知的错误,另一方面,Swing不允许同时使用两个lightwieght弹出组件 但

  • 问题内容: 我想按一下软键盘上的任何键。我不想在Activity中使用EditView或TextView,必须从Activity内部的扩展View处理该事件。 我只是试过这个: 1)覆盖活动方法。该功能不适用于软键盘,只能捕获很少的硬键盘。 2)创建我的并在我的视图中注册该视图,其中包含已注册并正在运行的。这对于软键盘根本不起作用。 3)覆盖View方法。如果我设置我的OnKeyListener或