在 Ionic 2 中按下硬件按钮时 Select2 不隐藏

Posted

技术标签:

【中文标题】在 Ionic 2 中按下硬件按钮时 Select2 不隐藏【英文标题】:Select2 is not hide when press hardware button back in Ionic 2 【发布时间】:2018-01-30 00:06:30 【问题描述】:

我使用 Ionic 2 和 Select2Module (ng2-select2 package) 来自动完成输入下拉菜单。

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

这里是发生了什么的一个例子

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

当我按回按钮并且键盘消失但下拉菜单消失时:

当我再次按下按钮返回到上一页时,下拉菜单仍然存在:

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

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

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

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

【问题讨论】:

这是modal popup 还是page @Sampath 不是page。但我不知道是不是modal popup。我用一些代码更新了我的问题。 怎么触发打开,是输入吗? 【参考方案1】:

你可以试试如下图。

app.component.ts

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

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

【讨论】:

以上是关于在 Ionic 2 中按下硬件按钮时 Select2 不隐藏的主要内容,如果未能解决你的问题,请参考以下文章

在android中按下后退按钮后如何返回相同的选项卡?

在 React 中按下按钮时重新渲染道具数据

在 PyQt5 中按下时如何切换按钮文本

(Kivy Python)在 .py 文件中按下按钮时切换屏幕

在 iOS 中按下按钮时打开另一个视图

在SwiftUI中按下按钮时的随机图像[关闭]