美文网首页flutter
Flutter - 弹出提示框

Flutter - 弹出提示框

作者: yytester | 来源:发表于2019-11-23 00:40 被阅读0次

安装第三方包

oktoast: ^2.2.0

import 'dart:async';

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

void main() => runApp(new MyApp());

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return OKToast(
      dismissOtherOnShow: true,
      child: new MaterialApp(
        title: 'Flutter Demo',
        theme: new ThemeData(

          primarySwatch: Colors.blue,
        ),
        home: new MyHomePage(title: 'Flutter Demo Home Page'),
      ),
    );
  }
}

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


  final String title;

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

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;

  void _showToast() {
    showToast("msg");
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("OKToast示例"),
      ),
      body: ListView(
        children: <Widget>[
          RaisedButton(
            child: Text('文字toast'),
            onPressed: _showToast,
          ),
          RaisedButton(
            child: Text('自定义Widget Toast'),
            onPressed: _showCustomWidgetToast,
          ),
          RaisedButton(
            child: Text('ToastHelper '),
            onPressed: () => ToastHelper.showToast(context, "toast helper"),
          ),
        ],
      ),
    );
  }

  void _showCustomWidgetToast() {
    var w = Center(
      child: Container(
        padding: const EdgeInsets.all(5),
        color: Colors.black.withOpacity(0.7),
        child: Row(
          children: <Widget>[
            Icon(
              Icons.add,
              color: Colors.white,
            ),
            Text(
              '添加成功',
              style: TextStyle(color: Colors.white),
            ),
          ],
          mainAxisSize: MainAxisSize.min,
        ),
      ),
    );
    showToastWidget(w);
  }
}

class ToastHelper {
  static void showToast(BuildContext context, String text) {
    const style = TextStyle(color: Colors.white, fontSize: 14.0);

    Widget widget = Center(
      child: Material(
        child: Container(
          color: Colors.black.withOpacity(0.5),
          padding: const EdgeInsets.symmetric(vertical: 5.0, horizontal: 10.0),
          child: Text(
            text,
            style: style,
          ),
        ),
      ),
    );
    var entry = OverlayEntry(
      builder: (_) => widget,
    );

    Overlay.of(context).insert(entry);

    Timer(const Duration(seconds: 2), () {
      entry?.remove();
    });
  }
}

效果:
第一个:


image.png

第二个:


image.png

第三个:


image.png

oktoast | Flutter Package


使用Flutter开发的一款APP-哄女友神器:
iOS:


image.png

安卓:


image.png

相关文章

  • Flutter - 弹出提示框

    安装第三方包 oktoast: ^2.2.0 效果:第一个: 第二个: 第三个: oktoast | Flutte...

  • swal的几种用法

    1,弹出提示框,点击确认,进行下一步操作 2,仅弹出提示框 3,仅弹出提示框,简单写法

  • iOS 拨打电话的三种方式

    1:直接拨打, 不会弹出提示框 2: 会弹出提示框 3:会弹出提示框(注意:这里是telprompt, 推荐用这种...

  • 提示框

    target:点击按钮---->屏幕中间弹出提示框 target:点击按钮---->屏幕底部弹出提示框

  • 普通的提示框

    弹出提示框,点击确定取消提示框 (void)showError:(NSString *)errorMsg {// ...

  • 给Flutter中的Widget设置透明度

    给Flutter中的Widget设置透明度 在项目开发中,需要经常用到透明度;比如在app中弹出一个提示框,这个时...

  • 弹出提示框和自动消失

    创建弹出提示框对象 UIAlertController* alert = [UIAlertController a...

  • 全局模态框组件的实现

    功能:1、未登录,会弹出图一的提示框2、加入购物车成功,弹出图二提示框效果: 子组件中,创建src/compone...

  • 混合开发cordova下ios插件的开发

    介绍:提示框插件,调用本地提示框弹出提示,有多种样式. 安装: * `cordova plugin add co...

  • cordova-plugin-dialogs 使用详解

    介绍: 提示框插件,调用本地提示框弹出提示,有多种样式 安装: cordova plugin add cordov...

网友评论

    本文标题:Flutter - 弹出提示框

    本文链接:https://www.haomeiwen.com/subject/ahucwctx.html