flutter_mentions 0.1.0 copy "flutter_mentions: ^0.1.0" to clipboard
flutter_mentions: ^0.1.0 copied to clipboard

outdated

A simple flutter input widget to add @ mentions functionality to your app.

example/lib/main.dart

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      builder: (_, child) => Portal(child: child),
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  GlobalKey<FlutterMentionsState> key = GlobalKey<FlutterMentionsState>();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Column(
        mainAxisAlignment: MainAxisAlignment.end,
        children: <Widget>[
          RaisedButton(
            child: Text("Get Text"),
            onPressed: () {
              print(key.currentState.controller.markupText);
            },
          ),
          Container(
            child: FlutterMentions(
              key: key,
              suggestionPosition: SuggestionPosition.Top,
              maxLines: 5,
              minLines: 1,
              mentions: [
                Mention(
                    trigger: "@",
                    style: TextStyle(
                      color: Colors.amber,
                    ),
                    data: [
                      {
                        "id": "61as61fsa",
                        "display": "fayeedP",
                        "full_name": "Fayeed Pawaskar",
                        "photo":
                            "https://images.pexels.com/photos/220453/pexels-photo-220453.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940"
                      },
                      {
                        "id": "61asasgasgsag6a",
                        "display": "khaled",
                        "full_name": "DJ Khaled",
                        "style": TextStyle(color: Colors.purple),
                        "photo":
                            "https://images.pexels.com/photos/220453/pexels-photo-220453.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940"
                      },
                      {
                        "id": "asfgasga41",
                        "display": "markT",
                        "full_name": "Mark Twain",
                        "photo":
                            "https://images.pexels.com/photos/220453/pexels-photo-220453.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940"
                      },
                      {
                        "id": "asfsaf451a",
                        "display": "JhonL",
                        "full_name": "Jhon Legend",
                        "photo":
                            "https://images.pexels.com/photos/220453/pexels-photo-220453.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940"
                      },
                    ],
                    matchAll: false,
                    suggestionBuilder: (data) {
                      return Container(
                        padding: EdgeInsets.all(10.0),
                        child: Row(
                          children: <Widget>[
                            CircleAvatar(
                              backgroundImage: NetworkImage(
                                data["photo"],
                              ),
                            ),
                            SizedBox(
                              width: 20.0,
                            ),
                            Column(
                              children: <Widget>[
                                Text(data["full_name"]),
                                Text("@${data["display"]}"),
                              ],
                            )
                          ],
                        ),
                      );
                    }),
                Mention(
                  trigger: "#",
                  disableMarkup: true,
                  style: TextStyle(
                    color: Colors.blue,
                  ),
                  data: [
                    {"id": "reactjs", "display": "reactjs"},
                    {"id": "javascript", "display": "javascript"},
                  ],
                  matchAll: true,
                )
              ],
            ),
          ),
        ],
      ),
    );
  }
}
161
likes
0
pub points
94%
popularity

Publisher

unverified uploader

A simple flutter input widget to add @ mentions functionality to your app.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

flutter, flutter_portal

More

Packages that depend on flutter_mentions