FLUTTER ECOSYSTEM

furkansarihan/story_viewer

Flutterでストーリーを表示する!

story_viewer のプロジェクト画像
Stars
11
Forks
5
最終プッシュ(UTC)
2025/09/11
プロジェクト状態
公開中
Furkan Sarıhan GitHub avatar
GITHUB User

Furkan Sarıhan ↗

Istanbul
言語DartRubySwiftKotlinObjective-C

このリポジトリが公開するパッケージ

使用している依存関係

依存関係一覧 3 件
  • flutter{"sdk":"flutter"}
  • extended_image^1.6.0
  • flutter_test開発用{"sdk":"flutter"}

元の README

以下は英語原文のスナップショットです。最新版は GitHub をご覧ください。

README を開く / 閉じる

story_viewer

This package provides common story view experience for any Flutter app.

https://firebasestorage.googleapis.com/v0/b/app-monotony.appspot.com/o/assets%2Fezgif.com-resize.gif?alt=media&token=30a0bbef-fd4d-4907-9813-3a95e97e1651

Features

  • Complate known gestures;
    • next story, previous story
    • hide UI layer on long press
  • Custom texts, icons, colors, paddings etc.
  • Easy to implement data model for story and story owner user.
  • Slide out page on vertical swipe down
  • Reply a story just like Instagram with text or emojis on vertical swipe up
  • **Display ratio for dynamic view inside any Widget.
  • Listener support with callbacks for story with StoryViewerController
    • played, paused, story index changed etc.
  • Customized additional layers support for under or on the media layer.
  • Blurred layer for possible inappropriate media

** Default and fully tested ratio is 9:16 with full screen.

Usage

This is common usage of story_viewer

StoryViewer(
    padding: EdgeInsets.all(8),
    backgroundColor: Colors.white,
    ratio: StoryRatio.r16_9,
    stories: [
        StoryItemModel(imageProvider: NetworkImage(imageURL)),
        StoryItemModel(imageProvider: MemoryImage(memoryImage)),
        StoryItemModel(imageProvider: AssetImage(assetName)),
    ],
    userModel: UserModel(
        username: username,
        profilePicture: NetworkImage(profileURL),
    ),
);

Custom controller example with event listeners

StoryViewerController controller = StoryViewerController();
controller.addListener(
    onPlayed: () {
        print("'onPlayed' callback outside of story_viewer");
    },
    onPaused: () {
        print("'onPaused' callback outside of story_viewer");
    },
);
return StoryViewer(
    viewerController: controller,
    .
    .

Check out example/lib/detailed_example.dart for more!

Dependencies

Package Name Type Description
extended_image Core Caching images, slide out page