A customizable Flutter widget that allows users to swipe through a text

SwipeThroughText Flutter Package

Pub Version GitHub

SwipeThroughText is a customizable Flutter widget that allows users to swipe through a text and strikethrough it when a certain swipe threshold is met. The package is suitable for use in various types of Flutter apps, including to-do lists, notes, and more.


Preview


Limitations

Currently this package only supports single line text, overflow text will be trimmed and ellipses ... will be added the end. Still this is temporary limitation, feel free contribute to add support for multi-lines.


Getting Started


Installation

Add the following line to your pubspec.yaml file:

dependencies:
  swipe_through_text: ^0.0.4 

Then, run flutter pub get in your terminal.


Usage

Import the package into your Dart code:

import 'package:swipe_through_text/swipe_through_text.dart';

To use the SwipeThroughText widget, simply add it to your widget tree with the required parameters, such as text and textStyle, and any optional parameters such as strikethroughColorstrikethroughLineHeightswipeThresholdonSwipeCompleteonSwipeCancel, and dashArray.

SwipeThroughText(
  text: 'Swipe me!',
  textStyle: TextStyle(fontSize: 24),
  strikethroughColor: Colors.red,
  strikethroughLineHeight: 4,
  swipeThreshold: 0.8,
  onSwipeComplete: (fraction) {
    // Do something when swiping is complete
  },
  onSwipeCancel: (fraction) {
    // Do something when swiping is cancelled
  },
)

You can also customize the strikethrough line using the dashArray parameter, which takes in a list of double values that determine the length of the dashes and gaps in the strikethrough line. For example, [10, 5] will create a dashed line with a 10-pixel dash and a 5-pixel gap.


Example

import 'package:flutter/material.dart';
import 'package:swipe_through_text/swipe_through_text.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'SwipeThroughText Demo',
      home: Scaffold(
        appBar: AppBar(
          title: Text('SwipeThroughText Demo'),
        ),
        body: Center(
          child: SwipeThroughText(
            text: 'Swipe me!',
            textStyle: TextStyle(fontSize: 24),
            strikethroughColor: Colors.red,
            strikethroughLineHeight: 4,
            swipeThreshold: 0.8,
            onSwipeComplete: (fraction) {
              print('Swipe completed at $fraction');
            },
            onSwipeCancel: (fraction) {
              print('Swipe cancelled at $fraction');
            },
            dashArray: [10, 5],
          ),
        ),
      ),
    );
  }
}


Contributing

Contributions to this package are welcome! If you find a bug or have a feature request, please open an issue or submit a pull request.

GitHub

View Github

Related Posts

Recent Posts

ഇടുക്കിയിലെ മലയോര മേഖലകളിൽ രാത്രിയാത്ര നിരോധിച്ചു. രാത്രി ഏഴു മുതൽ രാവിലെ ആറു വരെയാണ് നിരോധനം

ഏന്തയാർ ഈസ്റ്റിൽ പ്രളയത്തിൽ തകർന്ന പാലത്തിന് പകരം പുതിയ പാലം നിർമ്മിക്കുവാൻ താത്ക്കാലിക പാലം പൊളിച്ച് നീക്കി

Explore the Investment Opportunities: A Comprehensive Guide to Different Types of Mutual Funds

Title: Understanding Mutual Funds: A Beginner's Guide to Investing

തീവ്രമഴ മുന്നറിയിപ്പിന്റെ പശ്ചാതലത്തിൽ സംസ്ഥാനം ജാഗ്രതയിൽ

250,000 അപേക്ഷകൾ വർദ്ധിച്ചതിനാൽ ട്രാൻസ്‌പോർട്ട് കമ്മീഷണർ പരിശോധന പുനരാരംഭിക്കും

ഏലക്കയിൽ കീടനാശിനി സാന്നിധ്യം; ആറര ലക്ഷത്തിലധികം ടിൻ അരവണ നശിപ്പിക്കാൻ ടെൻഡർ ക്ഷണിച്ച് ദേവസ്വം ബോർഡ്‌

ഭീമൻ പാറക്കഷണങ്ങൾ അടർന്ന് ദേശീയ പാതയിലേക്ക് വീഴുന്നത് പതിവാകുന്നു. കുട്ടിക്കാനത്തിനും മുണ്ടക്കയത്തിനുമിടയിൽ നിലനിൽക്കുന്നത് വൻ അപകട ഭീഷണി

ചക്രവാതച്ചുഴി:അതിശക്തമായ മഴ വരുന്നു

പ്ലസ് വൺ പ്രവേശനം. അക്ഷയയിൽ തിക്കി തിരക്കേണ്ട, നെറ്റിവിറ്റി/ജാതി തെളിയിക്കാൻ പത്താംതരം സർട്ടിഫിക്കറ്റ് മതി