【问题标题】:ion-select popover interface is not getting hidden on hardware back button action离子选择弹出界面不会在硬件后退按钮操作中隐藏
【发布时间】:2019-04-14 20:45:15
【问题描述】:

我在<ion-select> 上使用了popover 界面来显示pop-over。在 Android 设备中,如果用户点击 ion-select 但未选择任何选项并单击硬件后退按钮,它会移动到上一个视图,但仍可见弹出界面。请帮忙。

<ion-select interface="popover" [(ngModel)]="item.productType" placeholder="Please select" multiple="false" ionChange="onChange($event)" >
    <ion-option *ngFor="let opt of options" [value]="opt.value">{{opt.label}}</ion-option>
</ion-select>

【问题讨论】:

  • if user tap on ion-select but didn't select any option你确定点击ion-select后有弹窗吗?
  • 用户从弹出窗口中选择任何选项后会弹出,但用户只需点击离子选择>>弹出窗口出现>>单击android后退按钮>>弹出窗口未弹出。请帮忙

标签: ionic-framework ionic3 hybrid-mobile-app


【解决方案1】:

模态页面中定义页面名称。

pageName = "ModalPage";

然后在app.component.ts

中注册后退按钮
    this.platform.registerBackButtonAction(() => {
        let nav = this.app.getActiveNav();
        let view = nav.getActive().instance.pageName;

        if (view == 'ModalPage') {
            let activeView: ViewController =  nav.getActive();
            activeView.dismiss();
       } else {
          this.nav.pop();
      }
    }

基本上它会注册您的设备后退按钮以在特定模式打开时执行操作。

欢迎评论以获得更多帮助:)

【讨论】:

  • 如果我创建任何模式页面,这可能会起作用,但这里我使用离子选择弹出窗口。这不适用于离子选择我尝试使用 @ViewChild('myselect') select: Select;在 ionWillLeave 我正在关闭 this.select.close();这工作正常。但是我有基于某些条件的选择字段,如果使用@viewchild 并且得到未定义的错误,这些选择字段将不起作用。请帮忙
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-02
相关资源
最近更新 更多