Je veux créer un snack-bar simple qui vient du haut de l'écran au lieu du bas. Dans le flutter, j'ai utilisé un snack-bar natif mais il n'a pas une telle fonctionnalité.
3 Réponses :
Vous pouvez utiliser https://pub.dartlang.org/packages/flushbar
RaisedButton(
child: Text('Show Top Snackbar'),
onPressed: () {
Flushbar(
flushbarPosition: FlushbarPosition.TOP,
)
..title = "Hey Ninja"
..message = "Lorem Ipsum is simply dummy text of the printing and typesetting industry"
..duration = Duration(seconds: 3)
..show(context);
},
),
Oui, j'ai également utilisé ce plugin mais il a un bug majeur si vous affichez deux snack-bars d'affilée que l'ancien ne supprime pas tout seul. C'est pourquoi je cherchais une alternative. Merci pour votre aide, mais je cherche quelque chose de plus.Si vous avez plus de suggestions que s'il vous plaît suggérez.
Eh bien, vous pouvez essayer d'empêcher l'utilisateur de créer 2 snack-bars en même temps.
Cela ne me semble pas un bug. Je pense que le snack-bar se comporte de la même manière. Imaginez avoir 5 messages à afficher à la fois et puisque les précédents sont automatiquement rejetés pour afficher le suivant, seul le dernier snack va apparaître.
Non, en fait, ce qui se passe avec ce plugin, c'est que si nous affichons un message sur le clic du bouton et que vous appuyez sur le bouton 8 fois très rapidement, vous obtenez 8 snack-bars l'un après l'autre, alors seul le plus récent sera rejeté tout seul et l'autre restera là jusqu'à ce que vous les balayez, ce qui signifie que vous devez faire glisser 7 barres de collations, ce qui n'est pas convivial.
J'ai obtenu ce résultat en utilisant ceci. la clé est utilisée par l'échafaudage qui est construit à l'intérieur du widget.
@override
void initState() {
super.initState();
WidgetsBinding.instance.addPostFrameCallback(_onBuildCompleted);
}
var scaffoldKey = new GlobalKey<ScaffoldState>();
_onBuildCompleted(_) {
print("SHOWN" * 3);
scaffoldKey.currentState.showSnackBar(
new SnackBar(backgroundColor: Colors.blue[600], content: Continue()));
// Navigator.of(context).push(_createRoute());
}
Cela fera apparaître le snack-bar par le bas.
ahh je n'ai pas remarqué cela avant mon mauvais: S.
Enveloppez votre widget avec Column et définissez mainAxisAlignment sur MainAxisAlignment.start . De plus, définissez la couleur de SnackBar transparente.
Column(
mainAxisAlignment: MainAxisAlignment.start,
children: [yourWidget()], ),
Avez-vous vérifié la réponse?
J'ai besoin de quelque chose de similaire au snack-bar, le pain grillé est ok mais seulement au cas où je n'ai pas trouvé de solution.
Mon mauvais, j'ai mal lu la question. Permettez-moi de mettre à jour la réponse.
Voilà, j'ai mis à jour la réponse.