FLUTTER ECOSYSTEM

farahfarah1/flexi

Flexi 是一個動態且全面的 Flutter 套件,旨在為開發者提供輕鬆精確地拖曳、縮放、旋轉和調整其組件大小的能力。Flexi 讓這一切變得簡單高效。

flexi 專案封面
Stars
2
Forks
1
最近推送(UTC)
2023年6月2日
專案狀態
未封存
Farah Farah GitHub avatar
GITHUB User

Farah Farah ↗

Software Engineer | Flutter Developer | Researcher

Youtap LTDLebanon
語言DartCMakeShellCObjective-CJavaC++Swift

此儲存庫發佈的套件

使用的依賴

依賴清單 4 項

原始 README

以下為英文專案原文快照,最新內容請造訪 GitHub。

展開 / 收合專案 README

Flexi

Flexi is a Flutter package that provides a flexible widget for zooming, panning, and rotating child widgets.

Alt Text

Features

  • Zoom in and out of a widget.
  • Pan the widget by dragging it.
  • Rotate the widget using gestures.
  • Double-tap to reset the widget to its original state.
  • Configurable minimum and maximum scale limits.
  • Configurable maximum translation limits along the X and Y axes.
  • Enable/disable rotation, scaling, and translation individually.
  • Support for custom callbacks on scale start, update, and end events.

Installation

Add the following dependency to your pubspec.yaml file:

dependencies:
  flexi: ^1.0.0

Usage

Import the package in your Dart file:

import 'package:flexi/flexi.dart';

Wrap your widget with the Flexi widget:

FlexiGes(
  child: YourWidget(),
  minScale: 0.8, // Set the minimum scale limit (optional)
  maxScale: 2.5, // Set the maximum scale limit (optional)
  onScaleUpdate: (offset, scale, rotation) {
    // Handle scale update event
  },
  onScaleEnd: (details) {
    // Handle scale end event
  },
)

Parameters

  1. child: The child widget that you want to apply zoom, pan, and rotate features to. (required)
  2. minScale: The minimum scale factor for scaling the widget. Defaults to 0.8. (optional)
  3. maxScale: The maximum scale factor for scaling the widget. Defaults to 2.5. (optional)
  4. onScaleUpdate: A callback function that is triggered during the scale update event. It provides the current offset, scale factor, and rotation angle as parameters. (optional)
  5. onScaleEnd: A callback function that is triggered when the scale event ends. It provides the scale end details as a parameter. (optional)
  6. canRotate: Flag to enable/disable rotation. Defaults to true. (optional)
  7. canScale: Flag to enable/disable scaling. Defaults to true. (optional)
  8. canTranslate: Flag to enable/disable translation. Defaults to true. (optional)
  9. returnToOrigin: Flag to enable/disable returning to the original state on double-tap. Defaults to true. (optional)
  10. enabled: Flag to enable/disable the Flexi widget. Defaults to true. (optional)
  11. maxTranslationX: The maximum translation value along the X-axis. Defaults to 100. (optional)
  12. maxTranslationY: The maximum translation value along the Y-axis. Defaults to 100. (optional)

Example

Check out the example directory for a working example of using the Flexi widget.

Running Tests

To run the tests for the Flexi package, use the following command: flutter test flexi_test.dart

Contributing

Contributions are welcome! Please submit any issues or pull requests via the GitHub repository.

License

This project is licensed under the MIT License.

Feel free to customize the content further based on your package's specific details and testing instructions.