npm包 react-native-swipeable-row-bouncing 使用教程

react-native-swipeable-row-bouncing是一个基于React Native的滑动行组件,可实现左右滑动来进行删除、标记和操作等功能。本教程将详细介绍该npm包的使用方法。

安装

在项目根目录下使用npm安装react-native-swipeable-row-bouncing依赖包:

--- ------- ----------------------------------- ------

安装完毕后,我们可以从包中导入SwipeableRowBouncing组件:

------ -------------------- ---- --------------------------------------

基础用法

react-native-swipeable-row-bouncing是一个可高度自定义的组件,但我们先从最基础的用法开始。

--------------------- --------------- -- -------------- ---------------- -- ---------------
    ------
        -------------------
    -------
-----------------------

渲染后,我们就可以左右滑动此行看到效果了。

自定义样式和交互

接下来我们将自定义样式并为组件添加交互响应。首先,我们将从上一步的渲染开始,并加入删除按钮。

---------------------
    --------------- -- --------------
    ---------------- -- ---------------
    -------------------
    ---------------------
-
    ----- -------- ---------------- ------- ---
        -------------------
    -------
    ----- -------- ---------------- ------ --------------- --------- ----------- --------- ------- ------ ---
        ----- -------- ------ -------- ----------- ------ ------------
    -------
-----------------------

在这个例子中,我们将swipeThreshold设置为50px,并将overshootFriction设置为8。这两个属性控制了滑动时的交互响应范围和弹性度。我们还设置了一个包含“删除”标记的红色色块作为滑动时出现的背景,并使其居中显示。

接下来,我们要实现滑动结束时出现按钮的动画效果。更具体地说,我们要跟踪当前滑动的位置,当它超过了-swipeThreshold时,才显示删除按钮。使用Animated库可以在组件中实现这种交互响应效果。

------ ------ - ------- -------- - ---- --------
------ - ----- ----- -------- - ---- ---------------
------ -------------------- ---- --------------------------------------

----- ------------------------------ - -- ------------ ------------ -- -- -
    ----- ------------ -------------- - ----------------
    ----- ---- - ---------- ---------------------------

    -------- ----------------------------- ------------- -
        ----- - -- - - -------------
        ------------------
        ---------------- - -----
    -

    -------- -------------------------------- -
        ---------------------
        ----- - -- - - ------------------
        -- --- - ---- -
            --------------
        - ---- -- --- - --- -
            ---------------
        -
        --------------------- -
            -------- --
            --------- ----
            ---------------- ----
        -----------
    -

    ------ -
        ------
            -------------- -------- ---------- -- ----------- ---- -- ---
                ---------------------
                    -------------------------
                    ---------------------------
                    -------------------------------------------
                    -------------------------------------------------
                    ---------------------
                -
                    ----- -------- ---------------- ------- ---
                        -------------------
                    -------
                -----------------------
            ----------------
            -------------- -------- ---------- -- ----------- ---- -- ---
                ----------- -- -
                    ----- -------- ---------------- ------ --------------- --------- ----------- --------- ------- ------ ---
                        ----- -------- ------ -------- ----------- ------ ------------
                    -------
                --
            ----------------
        -------
    --
--

------ ------- -------------------------------

在处理滑动时,我们使用一个handlePanResponderMove()方法来检查当前位置,如果当前位置位于-swipeThreshold左边,则显示删除按钮。在滑动结束时,我们先隐藏按钮,然后根据终止位置dx调用传递给组件的回调函数。最后,我们使用Animated库的timing()方法返回panX动画变量的起始值0,达到平滑滑动的效果。

完成后,嵌套一个SwipeableRowWithAnimatedButton组件,渲染即可。如下所示:

------------------------------- --------------- -- ---------------- ---------------- -- -------------------- --

总结

在本教程中,我们介绍了如何使用npm包react-native-swipeable-row-bouncing实现左右滑动删除和标记的功能。我们从基础用法开始,然后自定义了样式和交互响应,并添加了一个包含“删除”标记的动画按钮。希望这篇文章对学前端的读者们有所帮助。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/60059c1681e8991b448ed465


猜你喜欢

  • 使用 Puppexport:一个前端开发必备的 npm 包

    引言 在前端开发过程中,我们经常需要进行一些自动化测试、爬虫以及页面截图等操作。而 Puppexport 正是一个非常实用的 npm 包,它可以非常方便地使用 headless Chrome 自动完成...

    3 年前
  • npm 包 @set-state/core 使用教程

    介绍 在前端开发中,当我们需要管理组件的状态时,我们通常会利用 React 提供的组件状态机制来进行开发。但是,直接使用 React 的状态机制可能会导致一些问题,例如需要手动维护多个状态和容易出现分...

    3 年前
  • npm 包 generator-express-lambda 使用教程

    在现代前端开发中,使用 npm 包已经成为一种必不可少的方式。在这篇文章中,我们将学习如何使用一个 npm 包,generator-express-lambda。 generator-express-...

    3 年前
  • npm 包 hop-cli 使用教程

    npm 包 hop-cli 是一个前端构建工具,它提供了一套简单易用的命令行工具,可以帮助我们快速搭建前端项目的基础架构,例如 webpack 配置,babel 配置,eslint 配置等,极大地提高...

    3 年前
  • npm 包 js-xlsx-jszip-concat 使用教程

    在前端项目中,Excel 格式的数据是常见的数据交换格式。而如何在前端中操作 Excel 格式的文件呢?这就需要使用到 js-xlsx-jszip-concat 这个 npm 包了。

    3 年前
  • npm 包 react-native-jalali-date-picker 使用教程

    简介 React Native 是一款让你可以使用 JavaScript 和 React 语法编写原生 iOS 和 Android 应用的开发框架。同时,React Native 的开发生态也非常丰富...

    3 年前
  • NPM 包 @conga/framework-worker 使用教程

    简介 @conga/framework-worker 是一个基于 Node.js 的任务队列框架,可以用于解决并发任务的问题。它提供了多种任务处理方式,可以使用 Web Worker、child_pr...

    3 年前
  • npm 包 hyperterm-savetext 使用教程

    简介 hyperterm-savetext 是 HyperTerm 的一个 npm 插件,提供了保存终端文本的功能,这对于前端开发者来说是非常有用的。 安装 你可以执行以下命令来安装 hyperter...

    3 年前
  • npm 包 @citizenos/stream_upload 使用教程

    最近,@citizenos/stream_upload 这个 npm 包备受关注。该包主要用于向文件上传流上传文件。在本文中,我们将学习如何使用这个包。 什么是 @citizenos/stream_u...

    3 年前
  • npm 包 jsdoc-webpack4-plugin 使用教程

    如果你正在编写 JavaScript 库或构建了一个 Node.js 应用程序,那么文档化是非常重要的。文档化可以帮助其他开发人员理解你的代码库,并更快地进行开发。

    3 年前
  • npm 包 kaiquecruz-cordova-plugin-chrome-apps-sockets-udp 使用教程

    前言 在前端开发中,我们经常会需要在不同设备之间进行数据传输。而 UDP 协议是一种面向无连接的传输层协议,具有简单、快速和高效的特点。本文将介绍 npm 包 kaiquecruz-cordova-p...

    3 年前
  • npm 包 react-native-template-re-base-test 使用教程

    在 React Native 的开发中,我们经常需要用到模板来加快应用的开发速度。react-native-template-re-base-test 是一个非常流行的模板,它大大减少了应用的开发难度...

    3 年前
  • npm 包 watch-typing 使用教程

    前言 在前端开发过程中,经常需要使用一些第三方库。而这些库的升级和安装可能经常会出现问题。为了方便管理,npm 包管理器应运而生。npm 是一个管理前端依赖包的工具,它可以使我们在开发时更加方便地管理...

    3 年前
  • npm 包 @batteryincluded/ts-eventsourcing 使用教程

    背景 在现代的大型应用程序中,通过事件驱动架构实现的事件溯源(Event Sourcing)模式变得越来越流行。它强制开发人员将所有状态变更视为事件,并记录下这些事件,而不是直接将更改写入数据库。

    3 年前
  • npm 包 lycwed-cordova-plugin-clipboard 使用教程

    前言 在前端开发中,我们常常需要实现复制与粘贴的功能。Cordova 插件 lycwed-cordova-plugin-clipboard 提供了实现这些功能的解决方案。

    3 年前
  • npm包 kofi-body 使用教程

    在前端开发中,经常需要对页面进行布局,而布局又需要用到各种不同的HTML元素。kofi-body就是一个方便的npm包,可以帮助我们快速构建HTML页面的布局。 kofi-body简介 kofi-bo...

    3 年前
  • npm 包 nuxt-base 使用教程

    什么是 nuxt-base nuxt-base 是一个基于 nuxt.js 的前端脚手架,它提供了一个现代化,结构合理的前端项目基础架构,帮助开发者快速搭建基于 Vue.js 的 Web 应用程序。

    3 年前
  • npm 包 abtest-util 使用教程

    一、前言 在大型 Web 应用开发中,我们经常需要进行 A/B 测试,以了解用户喜好,优化页面设计或功能等。而在实现 A/B 测试时,我们通常需要使用到一些工具。其中,npm 包 abtest-uti...

    3 年前
  • npm 包 Browser-img-resize 使用教程

    简介 Browser-img-resize 是一个轻量级的浏览器端图片压缩 npm 包,它使用 JavaScript 编写,能够帮助前端开发人员快速压缩图片,从而提高网站的性能和用户体验。

    3 年前
  • npm 包 json-api-transform 使用教程

    前言 在前端开发中,如何处理 API 数据是一个非常重要的问题。API 返回的数据通常都是 JSON 格式的数据,但是这些数据并不总是符合前端的需求。因此,需要使用一些工具对数据进行转换和处理,这样才...

    3 年前

相关推荐

    暂无文章