在 Flutter 使用 GetX 对话框

在 Flutter 使用 GetX 对话框

[图片上传失败...(image-25c00e-1648427785994)]

原文

https://medium.flutterdevs.com/dialog-using-getx-in-flutter-248601043311

参考

正文

了解如何在您的 Flutter 应用程序使用 GetX 创建一个对话框

[图片上传失败...(image-3df6df-1648427785994)]

在 Flutter 使用 GetX 对话框

是移动应用程序的基本组成部分。他们帮助传递警告和重要信息,以及做具体的活动。当 Flutter 开发人员在 Flutter 制作一个对话框时,它利用上下文和生成器制作一个对话框。然而,对于开发人员来说,利用上下文和构建器来培养 Dialogs 是不合适的。

在本文中,我们将探索在 Flutter 使用 GetX 的对话框。我们还将实现一个演示程序,并了解如何使用您的 Flutter 应用程序的获取包创建对话框。

获取 | Flutter Package

GetX 是一个超轻和强大的解决方案 Flutter 。它结合了高性能的状态管理,智能..

https://pub.dev/packages/get

Introduction:

简介:

当我们需要显示任何类似表单的内容时,我们可以创建这个对话框,它涉及 Flutter 的 GetX 库。我们可以使对话框利用 GetX 的基本代码和非常简单的使一个对话框。它没有利用上下文和生成器来创建对话框。

是 Flutter 问题的附加轻量强解。它加入了精英的性能状态管理、智能依赖注入管理和路由管理。

演示模块:

[图片上传失败...(image-73aede-1648427785994)]

这个演示视频展示了如何在 Flutter 中创建一个对话框,并展示了如何使用您的 Flutter 应用程序中的 get 包来工作,以及使用不同的属性。它会显示在你的设备上。

Constructor:

要使用 Get.defaultDialog () ,需要调用下面的构造函数:

Future<T?> defaultDialog<T>({
  String title = "Alert",
  EdgeInsetsGeometry? titlePadding,
  TextStyle? titleStyle,
  Widget? content,
  EdgeInsetsGeometry? contentPadding,
  VoidCallback? onConfirm,
  VoidCallback? onCancel,
  VoidCallback? onCustom,
  Color? cancelTextColor,
  Color? confirmTextColor,
  String? textConfirm,
  String? textCancel,
  String? textCustom,
  Widget? confirm,
  Widget? cancel,
  Widget? custom,
  Color? backgroundColor,
  bool barrierDismissible = true,
  Color? buttonColor,
  String middleText = "Dialog made in 3 lines of code",
  TextStyle? middleTextStyle,
  double radius = 20.0,
  List<Widget>? actions,
  WillPopCallback? onWillPop,
  GlobalKey<NavigatorState>? navigatorKey,
})

Properties:

有一些 Get.defaultDialog ()的属性:

  • > title: 此属性用于对话框的标题。默认情况下,标题为“ Alert”。
  • > titleStyle: 此属性用于使用 TextStyle 给标题文本赋予的样式。
  • > content: 在这个属性中用于给出对话框的内容,并且应该使用 Widget 给出内容。
  • > middleText: 此属性用于对话框的中间文本。如果我们也利用内容,那么内容小部件数据将被播种。
  • > barrierDismissible: 如果我们想通过单击对话框外部来关闭对话框,那么这个属性的值应该为 true else false。默认情况下,它的值为 true。
  • > middleTextStyle: 此属性用于使用 TextStyle 给中间文本赋予的样式。
  • > radius: 在此属性中使用的是提供的对话框的半径。默认情况下,它的值为 20。
  • > backgroundColor: 在这个属性中用作对话框的背景颜色。

Implementation:

  • 第一步: 添加依赖项

将依赖项添加到 pubspec ー yaml 文件。

dependencies:
  flutter:
    sdk: flutter
  get: ^4.6.1
  • 第二步: 导入
import 'package:get/get.dart';
  • 第三步: 在应用程序的根目录中运行 flutter 软件包。

如何实现 dart 文件中的代码:

你需要分别在你的代码中实现它:

在 lib 文件夹中创建一个名为 main.dart 的新 dart 文件。

我们使用了 GetMaterialApp 而不是 MaterialApp,因为我们正在使用 GetX 库构建应用程序。如果我们不利用 GetMaterialApp,那么,在这一点上,它的功能将不工作。

return GetMaterialApp(
  title: 'Dialog Demo',
  theme: ThemeData(
    primarySwatch: Colors._blue_,
  ),
  home: Splash(),
  debugShowCheckedModeBanner: false,
);

我们将在 main.dart 文件中创建一个 Home 类

在正文中,我们将添加一个 Center 小部件。在这个小部件中,我们将添加一个 Column 小部件,该小部件的中心是 mainAxisAlignment。我们将添加一些东西,首先,我们将添加一个图像,其次,我们将添加一个带有子属性和样式属性的立面按钮。在 onPressed 函数中,我们将添加 Get.defaultDialog ()。我们将在下面深入描述它。

Center(
    child: Column(
      mainAxisAlignment: MainAxisAlignment.center,
      children: [
        Image.asset("assets/logo.png", scale: 14,),
        SizedBox(height: 80,),
        ElevatedButton(
          child: Text('Show Dialog'),
          style: ElevatedButton._styleFrom_(
            primary: Colors._teal_,
            onPrimary: Colors._white_,
            shadowColor: Colors._tealAccent_,
            textStyle: TextStyle(
                fontSize: 18,
            ),
            elevation: 5,
            shape: RoundedRectangleBorder(
                borderRadius: BorderRadius.circular(20.0)),
            minimumSize: Size(120, 50),
          ),
          onPressed: () {
             Get.defaultDialog(); },
        ),
      ],
    )),

当我们运行应用程序时,我们应该得到屏幕的输出,就像下面的屏幕截图一样。

[图片上传失败...(image-819a4d-1648427785994)]

Home Screen 主屏幕

现在,我们将深入描述 Get.defaultDialog () :

现在您看到了在 Flutter 使用 GetX 获得只有很少行的对话是多么容易。您还可以使用 GetX 提供的不同选项对其进行自定义。我们将添加标题,中间文本,背景颜色,标题样式,中间文本样式和半径。

Get.defaultDialog(
  title: "Welcome to Flutter Dev'S",
  middleText: "FlutterDevs is a protruding flutter app development company with "
      "an extensive in-house team of 30+ seasoned professionals who know "
      "exactly what you need to strengthen your business across various dimensions",
  backgroundColor: Colors._teal_,
  titleStyle: TextStyle(color: Colors._white_),
  middleTextStyle: TextStyle(color: Colors._white_),
  radius: 30
);

当我们运行应用程序时,我们应该得到屏幕的输出,就像下面的屏幕截图一样。

[图片上传失败...(image-968772-1648427785994)]

Final Output 最终输出

全部代码:

import 'package:flutter/material.dart';
import 'package:flutter_dialog_getx_demo/splash_screen.dart';
import 'package:get/get.dart';

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

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return GetMaterialApp(
      title: 'Dialog Demo',
      theme: ThemeData(
        primarySwatch: Colors._blue_,
      ),
      home: Splash(),
      debugShowCheckedModeBanner: false,
    );
  }
}

class Home extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        automaticallyImplyLeading: false,
        title: Text('Dialog Using GetX In Flutter'),
        centerTitle: true,
        backgroundColor: Colors._cyan_,
      ),
      body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Image.asset("assets/logo.png", scale: 14,),
              SizedBox(height: 80,),
              ElevatedButton(
                child: Text('Show Dialog'),
                style: ElevatedButton._styleFrom_(
                  primary: Colors._teal_,
                  onPrimary: Colors._white_,
                  shadowColor: Colors._tealAccent_,
                  textStyle: TextStyle(
                      fontSize: 18,
                  ),
                  elevation: 5,
                  shape: RoundedRectangleBorder(
                      borderRadius: BorderRadius.circular(20.0)),
                  minimumSize: Size(120, 50),
                ),
                onPressed: () {
                  Get.defaultDialog(
                    title: "Welcome to Flutter Dev'S",
                    middleText: "FlutterDevs is a protruding flutter app development company with "
                        "an extensive in-house team of 30+ seasoned professionals who know "
                        "exactly what you need to strengthen your business across various dimensions",
                    backgroundColor: Colors._teal_,
                    titleStyle: TextStyle(color: Colors._white_),
                    middleTextStyle: TextStyle(color: Colors._white_),
                    radius: 30
                  );
                },
              ),
            ],
          )),
    );
  }
}

结语:

在本文中,我已经解释了使用 GetX 的对话框的基本结构; 您可以根据自己的选择修改这段代码。这是我对使用 GetX 进行用户交互的对话框的一个小小介绍,它正在使用 Flutter 工作。

我希望这个博客将提供您充分的信息,尝试在您的 Flutter 项目使用 GetX 对话框。我们将向您展示介绍是什么?.使用 GetX 插件制作一个工作对话框的演示程序。在本博客中,我们已经研究了 flutter 应用程序的使用 GetX 的对话框。我希望这个博客能帮助你更好地理解这个对话框。所以请尝试一下。


© 猫哥

[图片上传失败...(image-5d041e-1648427785994)]

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,519评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,842评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,544评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,742评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,646评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,027评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,513评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,169评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,324评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,268评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,299评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,996评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,591评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,667评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,911评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,288评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,871评论 2 341

推荐阅读更多精彩内容