Изменить положение Снекбара Флаттера - PullRequest
0 голосов
/ 11 сентября 2018

Я хочу отобразить простое исчезающее сообщение об ошибке над кнопкой, когда определенные условия не выполняются. Кажется, что Snackbar Flutter хорошо подходит для этой цели.

Однако у меня возникают трудности с изменением положения снэк-бара на любое другое, кроме самой нижней части экрана. Это возможно? Если нет, есть ли виджет, который лучше подходит для этой цели?

Мой текущий код закусочной:

class ContinueButton extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container(
      margin: const EdgeInsets.only(
          bottom: 24.0, top: 24.0),
      child: Align(
        alignment: FractionalOffset.bottomCenter,
        child: MaterialButton(
          onPressed: () {
            final snackBar = SnackBar(
              content: Text('Yay! A SnackBar!'),
            );
            Scaffold.of(context).showSnackBar(snackBar);
          },

          child: Text('Continue'),
          height: 40.0,
          minWidth: 300.0,
          color: Colors.greenAccent,
        ),
      ),
    );
  }
}

1 Ответ

0 голосов
/ 28 мая 2019

Аналогичный вопрос: Есть ли какой-нибудь способ получить снэк-бар Top Flutter?

У меня нет решения по поводу закусочной.
Какой виджет лучше подходит для этой цели?Да
Я просто предоставляю альтернативу использованию пакета Flushbar
Вы можете изменить позицию уведомления с помощью flushbarPosition: FlushbarPosition.TOP
https://github.com/AndreHaueisen/flushbar enter image description here

        Flushbar(
      title: "Hey Ninja",
      message: "Lorem Ipsum is simply dummy text of the printing and typesetting industry",
      flushbarPosition: FlushbarPosition.TOP,
      flushbarStyle: FlushbarStyle.FLOATING,
      reverseAnimationCurve: Curves.decelerate,
      forwardAnimationCurve: Curves.elasticOut,
      backgroundColor: Colors.red,
      boxShadows: [BoxShadow(color: Colors.blue[800], offset: Offset(0.0, 2.0), blurRadius: 3.0)],
      backgroundGradient: LinearGradient(colors: [Colors.blueGrey, Colors.black]),
      isDismissible: false,
      duration: Duration(seconds: 4),
      icon: Icon(
        Icons.check,
        color: Colors.greenAccent,
      ),
      mainButton: FlatButton(
        onPressed: () {},
        child: Text(
          "CLAP",
          style: TextStyle(color: Colors.amber),
        ),
      ),
      showProgressIndicator: true,
      progressIndicatorBackgroundColor: Colors.blueGrey,
      titleText: Text(
        "Hello Hero",
        style: TextStyle(
            fontWeight: FontWeight.bold, fontSize: 20.0, color: Colors.yellow[600], fontFamily: "ShadowsIntoLightTwo"),
      ),
      messageText: Text(
        "You killed that giant monster in the city. Congratulations!",
        style: TextStyle(fontSize: 18.0, color: Colors.green, fontFamily: "ShadowsIntoLightTwo"),
      ),
    )..show(context);
...