android - 在 Ionic 2 中按下硬件按钮时,Select2 不会隐藏

标签 android angular ionic2 jquery-select2 ionic3

我将 Ionic 2 与 Select2Module ( ng2-select2 package ) 一起用于自动完成输入下拉列表。

当我单击输入以显示 select2 的自动完成下拉列表时,如果我想键入和展开选项,则会出现键盘。 当我点击移动按钮返回时,键盘消失但下拉菜单没有消失。如果我再次按下按钮,我会返回到屏幕,但下拉菜单仍然存在。

这是一个发生的例子

当我按下输入以显示下拉菜单并使用键盘显示选项时: enter image description here

当我按下按钮,键盘消失但下拉菜单没有消失: enter image description here

当我再次按下返回按钮并返回到上一页时,但下拉菜单仍然存在: enter image description here

如何在用户按下按钮时隐藏下拉菜单? select2 组件发生了什么?

我尝试在我的 app.component.ts 中使用以下代码解决此问题:

platform.registerBackButtonAction(() => {
        const overlayView = this.app._appRoot._overlayPortal._views[0];
        if( overlayView && overlayView.dismiss ){
          overlayView.dismiss();
        } else {
          this.app.goBack();
        }
      })

但是不工作。理论上,使用此代码,后退按钮应该隐藏模态弹出窗口,但它不起作用。

最佳答案

您可以尝试如下所示。

app.component.ts

this.platform.registerBackButtonAction(() => {
  try {
    this.viewController.dismiss()
  }
  catch(e) {
    ... no overlay component open
  }
})

如果上述方法不起作用,您可以找到大量 solutions here .

关于android - 在 Ionic 2 中按下硬件按钮时,Select2 不会隐藏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45805173/

相关文章:

android - 在 string.xml 中存储字符串

angular - 在 Angular 7 中将数据恢复为 react 形式

angular - Webpack 5 Module Federation 微前端和 Nx monorepos 是互斥的吗?

javascript - 使用 Angular 2 创建 Cordova 插件

javascript - ionic 2 : Refresh tabs view after adding a new dynamic tab

java - 在应用程序启动时播放电影

android - Jetpack 分页库无需滚动即可加载所有页面

javascript - ionic 框架 3 : Splitting a long article page into small pages

android - 如何枚举包的键值对

javascript - 使用 es5 和 es6 将输入注入(inject)到组件构造函数中