GitHub 저장소kekland/future_button

future_button

진행률 표시기 및 기타 기능이 있는 사용자 지정 가능한 Material 및 Cupertino 버튼

future_button 프로젝트 이미지
스타
36
포크
7
최근 푸시(UTC)
2022. 12. 19.
프로젝트 상태
활성

원본 README

아래는 영문 원문 스냅샷입니다. 최신 내용은 GitHub에서 확인하세요.

future_button

Coverage Status Build status Pub version

Customizable Material and Cupertino buttons with progress indicators and more.

Useful if you want to run some background tasks when user presses on the button, and then show the result of the task.

Demonstration

How to use it

Usage is extremely simple - right now 5 types of buttons are supported:

  • CupertinoButton (normal + filled)
  • FlatButton (normal + icon)
  • IconButton
  • OutlineButton (normal + icon)
  • RaisedButton (normal + icon)

To convert a button to a FutureButton, just add a Future prefix and make sure that your onPressed callback is of type Future<void> Function(), instead of usual void Function().

Everything that the package does can be customized. Below is the list of all parameters:

/// The widget that's used as the progress indicator.
/// You can substitute it with your own progress indicator if necessary.
/// See [defaultMaterialProgressIndicatorBuilder] and[defaultCupertinoProgressIndicatorBuilder] for more info.
final WidgetBuilder progressIndicatorBuilder;

/// The location of progress indicator.
/// See [ProgressIndicatorLocation] for more info.
final ProgressIndicatorLocation progressIndicatorLocation;

/// Whether to show the result of the Future.
/// Will show [successIndicatorBuilder] if Future completes without errors.
/// Otherwise, will show [failureIndicatorBuilder].
final bool showResult;

/// Whether to animate the transitions using [AnimatedSwitcher].
/// Defaults to [true].
final bool animateTransitions;

/// Indicator to show when the Future is completed successfully.
/// Defaults to [defaultSuccessResultIndicatorBuilder].
final WidgetBuilder successIndicatorBuilder;

/// Indicator to show when the Future fails.
/// Defaults to [defaultFailureResultIndicatorBuilder].
final WidgetBuilder failureIndicatorBuilder;

/// For how long should the result be shown for.
/// Default to `Duration(seconds: 2)`.
final Duration resultIndicatorDuration;

/// Curve that's used to animate the button size.
/// Defaults to [Curves.easeInOut].
final Curve animationCurve;

/// Duration that's used to animate the button size.
/// Defaults to `Duration(milliseconds: 150)`.
final Duration animationDuration;

Example

FutureRaisedButton.icon(
  icon: Icon(Icons.star),
  label: Text('Star'),
  onPressed: () async {
    // Do some background task
    await Future.delayed(Duration(seconds: 5));
  },
);

See example project for more details.

Getting Started

Depend on it

Add this to your package's pubspec.yaml file:

dependencies:
  future_button: ^0.1.1
Install it

You can install packages from the command line:

$ flutter pub get
Import it

Now in your Dart code, you can use:

import 'package:future_button/future_button.dart';

Contact me

E-mail: kk.erzhan@gmail.com

Erzhan GitHub avatar
GitHub 작성자

Erzhan ↗

i do some flutter things

Almaty, Kazakhstan
언어DartSwiftKotlinObjective-C

분류

이 저장소가 배포한 패키지

사용 중인 의존성

의존성 목록 3 개

  • flutter{"sdk":"flutter"}
  • pedantic개발 의존성^1.9.0
  • flutter_test개발 의존성{"sdk":"flutter"}

프로젝트에 맞는 저장소를 선택하려면?

사용 목적에 따라 검색하고 개발 활동을 비교한 뒤 원본 저장소에서 요구 사항을 확인하세요.

  1. 이름, 작성자 또는 설명으로 검색하고 기술 주제로 범위를 좁힙니다.
  2. 스타, 포크, 최근 푸시를 함께 비교하세요. 스타는 관심의 지표이며 품질을 보장하지 않습니다.
  3. 사용하기 전에 GitHub에서 README, 라이선스, Issues를 확인하세요.

출처 및 관리

“A repository is the most basic element of GitHub.”

GitHub Docs — About repositories ↗