搜尋套件、儲存庫與 APP 分類

swipe_to 封面
套件詳情v1.0.6

swipe_to

SwipeTo 是一個用於聊天視圖組件的包裝器,可在使用者於其上水平滑動時觸發回呼函數。

AndroidiOSWebmacOSWindowsLinux
近 30 天下載
8160
喜歡數
351
Pub 分數
160

安裝套件

flutter pub add swipe_to

套件介紹

根據套件公開資料產生的選型評估,僅供參考。

SwipeTo 是一個 Flutter 套件,包裝了聊天檢視元件,讓開發者能在使用者執行水平滑動時觸發回呼函數。此套件專為聊天介面設計,其中滑動手勢可啟動如刪除訊息或快速回覆等動作。該套件支援多個平台,包括 Android、iOS、Web、macOS、Windows 和 Linux,使其適用於跨平台應用程式。透過簡單的 API,它能無縫整合至現有的聊天 UI 中,無需複雜設定。它透過為聊天元素加入基於手勢的功能來提升使用者互動。

適用情境

  • 聊天訊息刪除
  • 快速回覆操作
  • 手勢驅動的導航
  • 互動式聊天介面
  • 滑動關閉訊息
  • 增強的使用者參與度

主要特色

  • 水平滑動檢測
  • 回調在滑動時觸發
  • 跨平台相容性
  • 與聊天組件的簡單整合
  • 支援多個平台
  • 輕量且開銷極小

適合對象

  • 開發聊天應用的開發者
  • 尋求手勢互動的UI設計師
  • 需要滑動操作功能的應用
  • 跨平台移動和網頁應用
  • 互動式訊息介面

使用建議

  • 需要正確的手勢處理設定
  • 可能需要針對複雜的滑動行為進行客製化
  • 僅限水平滑動
  • 取決於底層聊天視窗結構
  • 不適用於垂直滑動場景

原始 README

以下為關聯原始碼儲存庫的 README 原文快照,最新內容請造訪原始碼儲存庫。

swipe_to

SwipeTo is a wrapper for a chat view widget which can be used initiate callback when user horizontally swipe on it.

Getting Started

To use this packages, you just simply need to wrap your child component in SwipeTo widget and pass a VoidCallback that you can carry forward with your task.

In the pubspec.yaml of your flutter project, add the following dependency:

dependencies:
  ...
  swipe_to: 1.0.6

In your library add the following import:

import 'package:swipe_to/swipe_to.dart';

Parameter Info

  • child : (@required) StateLess or StateFull flutter widget.
  • onRightSwipe : callback which will be initiated at the end of right swipe animation. If not passed right swipe will be disabled
  • onLeftSwipe : callback which will be initiated at the end of left swipe animation. If not passed left swipe will be disabled
  • iconOnRightSwipe : IconData that will be displayed on left beneath child widget when swiped right. If not specified default is Icons.reply
  • rightSwipeWidget : Widget that will be displayed beneath child widget when swipe right. If iconOnRightSwipe is defined this will have no effect.
  • iconOnLeftSwipe : IconData that will be displayed on right beneath child widget when swiped left. If not specified default is Icons.reply
  • leftSwipeWidget : Widget that will be displayed beneath child widget when swipe left. If iconOnLeftSwipe is defined this will have no effect.
  • iconSize : Double value defining size of displayed icon beneath child widget. If not specified default it will take 26
  • iconColor : Color value defining color of displayed icon beneath child widget. If not specified primaryColor from theme will be taken
  • offsetDx : Double dx value used in Offset() till which position of child widget will get animated. If not specified 0.3 default will be taken. onRightSwipe +dx value will be used and for onLeftSwipe -dx value will be used
  • animationDuration : Duration value to define animation duration. If not specified default is 150 milliseconds
  • swipeSensitivity : Swipe sensitivity integer value which will be in range of default min 5 to max 35. Crossing mentioned value of this parameter (+ve in right and -ve in left direction) will trigger swipe animation.

Major changes onwards [ver 0.0.1+5]

  • For a single child widget, we can now enable swipe for both left and right direction
  • swipeDirection parameter is removed. Now onLeftSwipe and onRightSwipe callback will enable swiping for a particular direction if passed
  • iconData is now split into two parameter, iconOnRightSwipe & iconOnLeftSwipe for future use
  • endOffset is now change to accept a double value only
  • callBack is now split into two parameter, onLeftSwipe & onRightSwipe

Using SwipeTo widget for ListView items

While using SwipeTo widget for ListView items, make sure to pass a Key() as key parameter of SwipeTo widget. Suggested to use UniqueKey() which will differentiate each individual widget in the Widget Tree. Check example below. To view example code click here.

ListView(
    children: snapshot.data!.map((name) {
        return SwipeTo(
            key: UniqueKey(),
            iconOnLeftSwipe: Icons.arrow_forward,
            iconOnRightSwipe: Icons.arrow_back,
            onRightSwipe: (details) {
                log("\n Left Swipe Data --> $name");
            },
            swipeSensitivity: 20,
            child: ListTile(
                tileColor: Colors.cyan.shade200,
                title: Text(name),
            ),
        );
    }).toList(),
);

Deprecated/Removed Parameters

  • swipeDirection : Enum value from [swipeToLeft, swipeToRight] only. Make sure to pass relative Offset value according to passed swipeDirection value. If not specified swipeToRight will be taken as default.
  • iconData : IconData that will be displayed beneath child widget. if not specified default is Icons.reply
  • endOffset : Offset value till which position of child widget will get animated. if not specified Offset(0.3, 0.0) default will be taken
  • callBack : (@required) callback which will be initiated at the end of swipe animation

Example : SwipeToRight Wrap your desired widget with SwipeTo & pass a call to onRightSwipe parameter.

SwipeTo(
    child: Container(
        padding: const EdgeInsets.symmetric(vertical: 10.0, horizontal: 8.0),
        child: Text('Hey You! Swipe me right 👉🏿'),
    ),
    onRightSwipe: (details) {
        print('Callback from Swipe To Right');
    },
),

Example : SwipeToLeft Wrap your desired widget with SwipeTo & pass a call to onLeftSwipe parameter.

SwipeTo(
    child: Container(
        padding: const EdgeInsets.symmetric(vertical: 10.0, horizontal: 8.0),
        child: Text('👈🏿 Hey You! Swipe me Left'),
    ),
    onLeftSwipe: (details) {
        print('Callback from Swipe To Left');
    },
),

Example : SwipeToLeft & SwipeToRight Wrap your desired widget with SwipeTo & pass a call to onLeftSwipe & onRightSwipe parameters.

SwipeTo(
    child: Container(
        padding: const EdgeInsets.symmetric(vertical: 10.0, horizontal: 8.0),
        child: Text('👈🏿 Swipe me Left | YOU |Swipe me right 👉🏿'),
    ),
    onLeftSwipe: (details) {
        print('Callback from Swipe To Left');
    },
    onRightSwipe: (details) {
        print('Callback from Swipe To Right');
    },
),

Sample Outputs

Swipe To iOS Output Swipe To Android Output Swipe To iOS Output with Widget in back Swipe To Android Output with Widget in back

References to learn

https://medium.com/@purvik1239/enable-swiping-right-left-for-your-flutter-application-widgets-a7b556674f9c

所屬分類

原始碼儲存庫

使用此套件的專案