📜  ionic 菜单

📅  最后修改于: 2021-01-03 04:48:24             🧑  作者: Mango

离子菜单

菜单组件是最常用的离子组件。它是一个导航抽屉,可从当前视图的侧面向左或向右滑动。默认情况下,它会在当前视图的左侧滑动,但您也可以向右滑动。菜单可以根据模式显示不同。但是,可以将其更改为任何可用的菜单类型。您可以将任意数量的菜单附加到内容元素。

Ionic使用标准的组件,使您可以轻松创建侧面菜单以进行导航。菜单组件可以从模板控制,也可以使用MenuController通过编程控制。关闭菜单后,菜单内容将被隐藏。

菜单组件包含以下元素

菜单按钮:它是一个自动创建图标和功能以在页面上打开菜单的组件。

菜单控制器:用于控制菜单。它提供了显示菜单,启用菜单,切换菜单等方法。它将在旁边引用菜单或ID。如果没有任何一方或ID传递给它,它将获取它找到的第一个菜单。

菜单切换:用于切换菜单的打开或关闭。仅当所选菜单处于活动状态时,该菜单才可见。打开或关闭菜单时,该菜单处于活动状态。如果菜单被禁用或显示为拆分窗格,则将其标记为非活动状态,并且元素会隐藏自身。

拆分窗格:当您要创建多视图布局时,此功能很有用。它允许UI元素以增加宽度的方式显示为视口。如果设备的屏幕宽度较小,则拆分窗格将折叠,并且菜单将被隐藏。对于将在浏览器中提供服务并通过应用商店部署到手机和平板电脑的应用而言,它是理想的选择。

创建菜单

让我们看看如何在Ionic中创建侧面菜单。

步骤1:首先,创建空白的Ionic项目。默认情况下,该项目仅包含一个页面,即主页。现在,在这里我们将创建另外两个页面,这使得使用侧面菜单导航到其他页面变得容易。以下命令在Ionic应用程序中创建页面。

ionic generate page Contacts
ionic generate page Chat

步骤2:接下来,转到根组件,即app.component.ts 。然后,创建一个函数sideMenu() ,其中包含一个对象数组。对象数组包括项目中的不同页面。它还包含每个页面的图标和URL。现在,包括以下代码片段。

import { Component } from '@angular/core';

import { Platform } from '@ionic/angular';
import { SplashScreen } from '@ionic-native/splash-screen/ngx';
import { StatusBar } from '@ionic-native/status-bar/ngx';

@Component({
  selector: 'app-root',
  templateUrl: 'app.component.html',
  styleUrls: ['app.component.scss']
})
export class AppComponent {
  navigate: any;
  constructor(
    private platform: Platform,
    private splashScreen: SplashScreen,
    private statusBar: StatusBar
  ) {
    this.sideMenu();
    this.initializeApp();
  }

  initializeApp() {
    this.platform.ready().then(() => {
      this.statusBar.styleDefault();
      this.splashScreen.hide();
    });
  }
  sideMenu() {
    this.navigate =
    [
      {
        title : 'Home',
        url   : '/home',
        icon  : 'home'
      },
      {
        title : 'Chat',
        url   : '/chat',
        icon  : 'chatboxes'
      },
      {
        title : 'Contacts',
        url   : '/contacts',
        icon  : 'contacts'
      },
    ];
  }
}

步骤3:接下来,我们需要在app.component.html文件中添加组件以创建侧面菜单。在此HTML文件中添加以下代码段。


  
    
      
        Navigate
      
    
    
      
        
          
            
              {{pages.title}} 
          
        
      
    
  
  

在上面的代码片段中,带有side =“ start”将创建一个从左到右开始的侧面菜单。它还包含contentId属性,它是菜单的ID。

,其中routerLink允许导航到指定的urlouterDirection确定页面更改时发生的动画。

组件用于打开和关闭侧面菜单。因此,当您单击菜单时,它将自动关闭侧面菜单。

步骤4:在根组件中创建侧菜单后,我们可以在每个页面中打开或关闭它。为此,我们需要在每个页面的html中使用组件,该组件能够创建图标和功能以在每个页面上打开菜单


  
    
      
    
    
      Start Menu
    
  

步骤5:现在,在终端中执行Ionic项目。它将给出以下输出。

如果单击屏幕左上角的三行蓝线菜单按钮,将提供以下输出。

下表显示了Ionic菜单组件中使用的重要方法。

SN Method Signature Description
1. Close() close(animated?: boolean) => Promise It closes the menu. If the menu is already closed, or it cannot be closed, it returns false.
2. isActive() isActive() => Promise It returns true, if the menu is active.
3. isOpen() isOpen() => Promise It returns true, if the menu is open.
4. Open() open(animated?: boolean) => Promise It opens the menu. If the menu is already open, or it cannot be opened, it returns false.
5. setOpen() setOpen(shouldOpen: boolean, animated?: boolean) => Promise It is used to open or close the button. It returns false, if the operation is not completed.
6. Toggle(() toggle(animated?: boolean) => Promise It is used to toggles the menu. It returns false, if the operation is not completed successfully.