移动端的离子底部标签和桌面端的侧边菜单

Posted

技术标签:

【中文标题】移动端的离子底部标签和桌面端的侧边菜单【英文标题】:Ionic bottom tabs on mobile and side menu on desktop 【发布时间】:2020-02-29 14:49:25 【问题描述】:

您好,我正在用 ionic 4 和 angular 构建一个应用程序,我有一个左侧菜单,但我想要完成的是,当我在移动设备上时,该菜单位于底部选项卡上,当我m 在较大的屏幕上,菜单移动到左侧。我一直无法做到这一点,谁能指出我正确的方向?

【问题讨论】:

您找到解决方案了吗?我想用 Ionic 5 实现相同的功能。 【参考方案1】:

自己管理响应式断点的一种方法是隐藏在 Material CDK 中的一个功能,称为布局:

https://material.angular.io/cdk/layout/overview

我过去曾使用它向ngx-datatable 添加响应式布局。

Alligator.io 有一个good introduction to this subject。

使用它的一种方法是设置一些断点,以及一个存储当前断点的变量:

  public readonly LAYOUT = 
    XS: 768,
    SM: 992,
    MD: 1200,
    LG: 1600,
    XL: 1920,
    XXL: 2560,
  ;
  public layout: number = this.LAYOUT.MD;

然后在ngOnInit 中设置它以便自动管理:

    // Setting up breakpoint mechanism
    const breakpoints = Object.keys(this.LAYOUT).map(k => this.LAYOUT[k]);
    breakpoints.forEach((maxWidth, index) => 
      const minWidth = (index > 0) ? breakpoints[index - 1] : 0;
      this.breakpointObserver
        .observe([`(min-width: $minWidthpx) and (max-width: $maxWidth - 1px)`])
        .subscribe((state: BreakpointState) => 
          if (!state.matches)  return; 
          this.layout = maxWidth;
          console.log('Layout', this.layout);
        );
    );

至于您正在寻找的实际功能,这只是设置两个 UI,然后使用ngIf 使用 CDK 信息显示或隐藏它们的情况:

<app-some-component *ngIf="layout > LAYOUT.XS"></app-some-component>

【讨论】:

以上是关于移动端的离子底部标签和桌面端的侧边菜单的主要内容,如果未能解决你的问题,请参考以下文章

在电脑上写移动端的网页如何在手机上测试?

Web测试要点 做移动端的测试,也做web端的测试,甚至后面桌面端的测试和后台的测试也做了,基本上把我们产品各个端都玩了一轮

浅谈移动端的自适应问题——响应式rem/em利用Js动态实现移动端自适应

离子标签和侧边菜单历史

关于移动端的键盘兼容性总结

有货移动Web端性能优化探索实践