カテゴリー・パッケージ・リポジトリを検索

mentionable_text_field のカバー
パッケージ詳細v0.0.2

mentionable_text_field

カスタマイズ可能なテキストフィールドを作成するためのFlutterプラグインで、メンション機能を備えています。一致するユーザーの表示および選択方法はウィジェット自体とは独立しているため、ご自身の方法を選択できます。

AndroidiOSWebmacOSWindowsLinux
30日間ダウンロード
267
いいね数
35
Pub ポイント
130

パッケージをインストール

flutter pub add mentionable_text_field

パッケージ概要

公開情報に基づく選定ガイドです。参考としてご利用ください。

ユーザーがテキスト内で他の人をタグ付けできるようにするカスタマイズ可能なFlutterテキストフィールドプラグインです。メンションの一致と表示のロジックをUIから分離しており、提案の表示や選択方法に柔軟性を提供します。チャットやソーシャルアプリに最適で、Android、iOS、Web、macOS、Windows、Linuxなど複数のプラットフォームをサポートしています。特定のUIコンポーネントに縛られず、メンション体験を完全にコントロールしたい開発者向けに設計されています。

用途

  • チャットアプリケーション
  • ソーシャルメディアプラットフォーム
  • 共同編集ツール
  • コメント内のユーザータグ
  • リアルタイムメッセージインターフェース
  • メンション付きのコンテンツ作成

主な機能

  • メンションの表示と選択の分離
  • カスタマイズ可能な提案UI
  • クロスプラットフォーム対応
  • 拡張可能な一致論理
  • 設定可能なトリガー文字
  • 統合に優れたデザイン

適している対象

  • 豊富なテキスト入力を構築する開発者
  • ユーザーのタグ付けを必要とするアプリ
  • 柔軟なメンションシステムを必要とするチーム
  • カスタムUI要件を持つプロジェクト
  • 複数のプラットフォームをターゲットとするFlutterアプリ

注意事項

  • 提案のレンダリングにはカスタム実装が必要です
  • 追加の状態管理が必要になる場合があります
  • シンプルなテキスト入力には適していません
  • ユーザーの一致に外部論理に依存しています
  • 制限された組み込みスタイルオプション
  • テキストカーソルおよび選択の取り扱いに注意が必要です

元の README

関連するソースリポジトリの README 原文のスナップショットです。最新の内容はリポジトリをご覧ください。

mentionable_text_field

A flutter plugin to create customizable text field that has a mentionable feature.

Installing:

In your pubspec.yaml

dependencies:
  mentionable_text_field: ^0.0.2
import 'package:mentionable_text_field/mentionable_text_field.dart';


Basic Usage:

    class _MyHomePageState extends State<MyHomePage> {
  List<Mentionable> _mentionableUsers = [];
  late void Function(Mentionable mentionable) _onSelectMention;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: SafeArea(
        child: Stack(
          children: [
            Positioned(
              bottom: 0,
              width: MediaQuery.of(context).size.width,
              height: 200,
              child: Column(
                children: [
                  MentionableTextField(
                    onControllerReady: (value) =>
                    _onSelectMention = value.pickMentionable,
                    maxLines: 1,
                    onSubmitted: print,
                    mentionables: const [
                      MyUser('John Doe'),
                      MyUser('Jeanne Aulas'),
                      MyUser('Alexandre Dumas')
                    ],
                    onMentionablesChanged: (mentionableUsers) =>
                        setState(() => _mentionableUsers = mentionableUsers),
                    decoration:
                    const InputDecoration(hintText: 'Type something ...'),
                  ),
                  Expanded(
                    child: ListView.builder(
                      itemBuilder: (context, index) {
                        final mentionable = _mentionableUsers[index];
                        return ListTile(
                          leading: const Icon(Icons.person),
                          title: Text(mentionable.label),
                          onTap: () => _onSelectMention(mentionable),
                        );
                      },
                      itemCount: _mentionableUsers.length,
                    ),
                  )
                ],
              ),
            )
          ],
        ),
      ),
    );
  }
}



Custom usage

In addition to basic textField's attributes, There are other options:\

Properties Description
ValueChanged<MentionTextEditingController>? onControllerReady A callback to retrieve the TextField controller when ready
List<Mentionable> mentionables List of possible Mentionable objects, eg: users.
String escapingMentionCharacter The character used to replace mention. It should not be used by the user to avoid issues. It should be a single character.
MentionablesChangedCallback onMentionablesChanged Callback that is called on each new characters typed in TextField. It gives the current candidates to mention feature.
TextStyle mentionStyle Text Style applied to mentions

Additional information

Don't hesitate to suggest any features or fix that will improve the package!

カテゴリー

ソースリポジトリ

このパッケージを使用しているプロジェクト

データはまだありません。