@nativescript-community/ui-drawer
轻松将侧滑抽屉(侧边菜单)添加到您的项目中。
npm i --save @nativescript-community/ui-drawer

@nativescript-community/ui-drawer

Downloads per month NPM Version

轻松将侧滑抽屉(侧边菜单)添加到您的项目中。


iOS 示例 Android 示例

目录

安装

从项目的根目录运行以下命令

ns plugin add @nativescript-community/ui-drawer

配置

为了使手势功能正常工作,请确保在主应用程序文件(例如 app.ts)内部添加以下代码块

import { install } from '@nativescript-community/ui-drawer';
install();

API

属性

属性 默认值 类型 描述
leftDrawer undefined 视图 包含左侧抽屉内容的视图
rightDrawer undefined 视图 包含右侧抽屉内容的视图
topDrawer undefined 视图 包含顶部抽屉内容的视图
bottomDrawer undefined 视图 包含底部抽屉内容的视图
mainContent undefined 视图 包含应用程序主要内容的视图
gestureEnabled true 布尔型 布尔设置,以启用或禁用滑动手势
backdropTapGestureEnabled true 布尔型 允许点击背景来关闭抽屉
backdropColor new Color('rgba(0, 0, 0, 0.7)') 颜色 抽屉后面背景的颜色
leftDrawerMode slide 模式 ('under' 或 'slide') 抽屉的进入动画行为
rightDrawerMode slide 模式 ('under' 或 'slide') 抽屉的进入动画行为
gestureMinDist 10 数字 触发菜单手势的最小“滑动”距离
gestureHandlerOptions null PanGestureHandlerOptions 自定义滑动手势处理程序的选项
leftSwipeDistance 40 数字 识别手势的“左侧”区域大小
rightSwipeDistance 40 数字 识别手势的“右侧”区域大小
topSwipeDistance 40 数字 识别手势的“顶部”区域大小
bottomSwipeDistance 40 数字 识别手势的“底部”区域大小
leftOpenedDrawerAllowDraging true 布尔型 允许拖动打开的菜单
rightOpenedDrawerAllowDraging true 布尔型 允许拖动打开的菜单
topOpenedDrawerAllowDraging true 布尔型 允许拖动打开的菜单
bottomOpenedDrawerAllowDraging true 布尔型 允许拖动打开的菜单

方法

名称 返回 描述
open() void 以编程方式打开抽屉
close() void 以编程方式关闭抽屉
toggle() void 以编程方式切换抽屉的状态
install() void 安装手势

事件

名称 事件数据 描述
open side, duration 抽屉打开
close side, duration 抽屉关闭

在 Angular 中的使用

将模块导入到您的项目中。

import { DrawerModule } from "@nativescript-community/ui-drawer/angular";

@NgModule({
imports: [
DrawerModule
]
schemas: [
NO_ERRORS_SCHEMA
]
})

export class AppModule { }

示例

  • 基本抽屉
    • 一个基本的滑动抽屉。
  • 所有侧面
    • 所有侧面(左侧、右侧、顶部、底部)抽屉的示例。

在 React 中的使用

在您的 app.ts 中注册插件。

import DrawerElement from '@nativescript-community/ui-drawer/react';
DrawerElement.register();

示例

  • 基本抽屉
    • 一个基本的滑动抽屉。
  • 所有侧面
    • 所有侧面(左侧、右侧、顶部、底部)抽屉的示例。

在 Svelte 中的使用

在您的 app.ts 中注册插件。

import DrawerElement from '@nativescript-community/ui-drawer/svelte';
DrawerElement.register();

示例

  • 基本抽屉
    • 一个基本的滑动抽屉。
  • 所有侧面
    • 所有侧面(左侧、右侧、顶部、底部)抽屉的示例。

在 Vue 中的使用

在您的 app.js 中注册插件。

import DrawerPlugin from '@nativescript-community/ui-drawer/vue'
Vue.use(DrawerPlugin);

示例

  • 基本抽屉
    • 一个基本的滑动抽屉。
  • 所有侧面
    • 所有侧面(左侧、右侧、顶部、底部)抽屉的示例。

在 Vue3 中的使用

在您的 app.js 中注册插件。

import DrawerPlugin from '@nativescript-community/ui-drawer/vue3'

app.use(DrawerPlugin);

示例

  • 基本抽屉
    • 一个基本的滑动抽屉。
  • 所有侧面
    • 所有侧面(左侧、右侧、顶部、底部)抽屉的示例。

演示和开发

仓库设置

该仓库使用子模块。如果您没有使用 --recursive 进行克隆,则需要调用

git submodule update --init

用于安装和链接依赖项的包管理器必须是 pnpmyarnnpm 不可用。

开发和测试:如果您使用 yarn,则运行 yarn;如果您使用 pnpm,则运行 pnpm i

交互式菜单

要启动交互式菜单,运行 npm start(或 yarn startpnpm start)。这将列出所有常用的脚本。

构建

npm run build.all

警告:似乎 yarn build.all 并不总是有效(在 node_modules/.bin 中找不到二进制文件),这就是为什么文档明确使用 npm run

演示

npm run demo.[ng|react|svelte|vue].[ios|android]

npm run demo.svelte.ios # Example

示例设置有些特别,如果您想修改/添加示例,您不需要直接在 demo-[ng|react|svelte|vue] 中工作。相反,您应该在 demo-snippets/[ng|react|svelte|vue] 中工作。您可以从每种风格的 install.ts 开始,看看如何注册新的示例。

贡献

更新仓库

您可以非常容易地更新仓库文件。

首先更新子模块。

npm run update

然后提交更改,然后更新通用文件。

npm run sync

然后您可以运行 yarn|pnpm,如果有任何更改,请提交更改的文件。

更新 README

npm run readme

更新文档

npm run doc

发布

发布完全由 lerna 处理(您可以添加 -- --bump major 以强制发布主版本)。只需运行即可。

npm run publish

修改子模块

仓库使用 https:// 用于子模块,这意味着您不能直接推送到子模块。一个简单的解决方案是修改 ~/.gitconfig 并添加

[url "ssh://[email protected]/"]
pushInsteadOf = https://github.com/

问题

如果您有任何问题/问题/评论,请随时创建一个问题或开始一个在 NativeScript 社区 Discord 中的对话。