Flutter 新人指導(dǎo)插件 onboarding_overlay

image

老鐵記得 轉(zhuǎn)發(fā) 痛倚,貓哥會呈現(xiàn)更多 Flutter 好文~~~~

微信群 ducafecat

b 站 https://space.bilibili.com/404904528

原文

https://medium.com/flutterdevs/explore-onboarding-overlay-in-flutter-5ed882e123ac

參考

正文

image

Flutter 是一個開源的用戶界面軟件開發(fā)軟件開發(fā)工具包诱咏。Flutter 是一個開源項目,由 Google 負(fù)責(zé)維護(hù)爽彤。目前撬讽,在 2021 年 3 月尚猿。谷歌已經(jīng)發(fā)布了另一個新版本的 Flutter 2。作為一個軟件開發(fā)工具包應(yīng)用程序的 Flutter 是很好的从绘,但是當(dāng)構(gòu)建一個大的應(yīng)用程序時,在代碼中會有一些問題或者 bug 需要調(diào)試是牢。

Flutter 提供了多種調(diào)試工具僵井,如時間軸檢查器、內(nèi)存和性能檢查器等驳棱。這些工具簡化了開發(fā)者的調(diào)試過程批什,下面列出了調(diào)試 Flutter 應(yīng)用程序的不同工具。

你好朋友社搅,我將談?wù)撐业男虏┛蜕咸剿魃习鍝涓采w驻债。我們還將實現(xiàn)一個探索 Onboarding 覆蓋小部件演示,并使用它們在您的 Flutter 應(yīng)用程序形葬。那么讓我們開始吧合呐。

Flutter

Flutter 是谷歌的用戶界面工具包,它可以幫助你在創(chuàng)紀(jì)錄的時間內(nèi)用一個代碼庫為移動笙以、網(wǎng)絡(luò)和桌面構(gòu)建漂亮的本地組合應(yīng)用程序淌实。這意味著你可以使用一種編程語言和一個代碼庫來創(chuàng)建兩個不同的應(yīng)用程序(iOS 和 Android)。

Onboarding Overlay

image
image
image

按照自定義的設(shè)計指南,Onboarding Overlay Package 動畫包實現(xiàn)了 Onboarding 覆蓋拆祈,在這里恨闪,我們可以使用任何 Onboarding 覆蓋中的小部件,我們使用它向用戶介紹一個他們不知道的功能放坏。Onboarding overlay 是一個靈活的 Onboarding 小部件凛剥,可以通過任意數(shù)量的步驟和任意起始點啟動和停止。

https://pub.flutter-io.cn/packages/onboarding_overlay

Implementation

你需要分別在你的代碼中實現(xiàn)它:

  • 第一步: 添加依賴項轻姿。

將依賴項添加到 pubspec.yaml 文件犁珠。

dependencies:
  onboarding_overlay: ^2.1.0
  • 步驟 2: 導(dǎo)入包:
import 'package:onboarding_overlay/onboarding_overlay.dart';
  • 第三步: 在應(yīng)用程序的根目錄中運行 flutter 軟件包。

Implementation

libfolder 中創(chuàng)建一個名為 onboarding_overlay_demo.dart 的新 dart 文件互亮。

首先犁享,我們必須定義 GlobalKey 和它的內(nèi)部,它的名字是 onBoardingKey 和 scaffoldKey豹休。

final GlobalKey<OnboardingState> onboardingKey = GlobalKey<OnboardingState>();
final GlobalKey<ScaffoldState> scaffoldKey = GlobalKey<ScaffoldState>();

現(xiàn)在我們將使用 Onboarding Widget炊昆,其中我們將使用 Steps 屬性,其中我們已經(jīng)使用了一些不同類型的屬性威根,如標(biāo)題凤巨,titleTextColor,labelBoxPadding洛搀,labelBoxDecoration敢茁,bodyText 等,我們已經(jīng)使用了下面的代碼留美,可以在參考的幫助下理解彰檬。

OnboardingStep(
  focusNode: focusNodes[0],
  title: 'Tap anywhere to continue Tap anywhere to continue',
  titleTextColor: Colors.black,
  bodyText: 'Tap anywhere to continue Tap anywhere to continue',
  labelBoxPadding: const EdgeInsets.all(16.0),
  labelBoxDecoration: BoxDecoration(
      shape: BoxShape.rectangle,
      borderRadius: const BorderRadius.all(Radius.circular(8.0)),
      color: const Color(0xFF00E1FF),
      border: Border.all(
        color: const Color(0xFF1E05FB),
        width: 1.0,
        style: BorderStyle.solid,
      )),
  arrowPosition: ArrowPosition.bottomCenter,
  hasArrow: true,
  hasLabelBox: true,
  fullscreen: true,
),

Code File

import 'package:flutter/material.dart';
import 'package:onboarding_overlay/onboarding_overlay.dart';class OnBoardingOverlayDemo extends StatefulWidget {
  const OnBoardingOverlayDemo({
    Key? key,
    required this.focusNodes,
  }) : super(key: key);

  final List<FocusNode> focusNodes;

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

class _OnBoardingOverlayDemoState extends State<OnBoardingOverlayDemo> {
  late int _counter;

  @override
  void initState() {
    super.initState();
    _counter = 0;
  }

  @override
  void dispose() {
    super.dispose();
  }

  void _increment(BuildContext context) {
    setState(() {
      _counter++;
      Onboarding.of(context)!.show();
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        leading: IconButton(
          focusNode: widget.focusNodes[4],
          icon: const Icon(Icons.menu),
          onPressed: () {},
        ),
        title: Focus(
          focusNode: widget.focusNodes[3],
          child: const Text('Title'),
        ),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Focus(
              focusNode: widget.focusNodes[0],
              child: const Text('You have pushed the button this many times:'),
            ),
            Focus(
              focusNode: widget.focusNodes[2],
              child: Text(
                '$_counter',
                style: Theme.of(context).textTheme.headline4,
              ),
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        focusNode: widget.focusNodes[1],
        onPressed: () {
          _increment(context);
        },
        child: const Icon(Icons.add),
      ),
    );
  }
}

Conclusion

在這篇文章中,我已經(jīng)解釋了在 Flutter 探索在板上覆蓋谎砾,你可以根據(jù)自己的修改和實驗逢倍,這個小介紹是從我們這邊的 Flutter 探索在板上覆蓋演示。


? 貓哥

https://ducafecat.tech/

https://github.com/ducafecat

往期

開源

GetX Quick Start

https://github.com/ducafecat/getx_quick_start

新聞客戶端

https://github.com/ducafecat/flutter_learn_news

strapi 手冊譯文

https://getstrapi.cn

微信討論群 ducafecat

系列集合

譯文

https://ducafecat.tech/categories/%E8%AF%91%E6%96%87/

開源項目

https://ducafecat.tech/categories/%E5%BC%80%E6%BA%90/

Dart 編程語言基礎(chǔ)

https://space.bilibili.com/404904528/channel/detail?cid=111585

Flutter 零基礎(chǔ)入門

https://space.bilibili.com/404904528/channel/detail?cid=123470

Flutter 實戰(zhàn)從零開始 新聞客戶端

https://space.bilibili.com/404904528/channel/detail?cid=106755

Flutter 組件開發(fā)

https://space.bilibili.com/404904528/channel/detail?cid=144262

Flutter Bloc

https://space.bilibili.com/404904528/channel/detail?cid=177519

Flutter Getx4

https://space.bilibili.com/404904528/channel/detail?cid=177514

Docker Yapi

https://space.bilibili.com/404904528/channel/detail?cid=130578

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末景图,一起剝皮案震驚了整個濱河市较雕,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌挚币,老刑警劉巖亮蒋,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異忘晤,居然都是意外死亡宛蚓,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進(jìn)店門设塔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來凄吏,“玉大人远舅,你說我怎么就攤上這事『鄹郑” “怎么了图柏?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長任连。 經(jīng)常有香客問我蚤吹,道長,這世上最難降的妖魔是什么随抠? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任裁着,我火速辦了婚禮,結(jié)果婚禮上拱她,老公的妹妹穿的比我還像新娘二驰。我一直安慰自己,他們只是感情好秉沼,可當(dāng)我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布桶雀。 她就那樣靜靜地躺著,像睡著了一般唬复。 火紅的嫁衣襯著肌膚如雪矗积。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天敞咧,我揣著相機與錄音棘捣,去河邊找鬼。 笑死妄均,一個胖子當(dāng)著我的面吹牛柱锹,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播丰包,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼壤巷!你這毒婦竟也來了邑彪?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤胧华,失蹤者是張志新(化名)和其女友劉穎寄症,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體矩动,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡有巧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了悲没。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片篮迎。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出甜橱,到底是詐尸還是另有隱情逊笆,我是刑警寧澤,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布岂傲,位于F島的核電站难裆,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏镊掖。R本人自食惡果不足惜乃戈,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望亩进。 院中可真熱鬧症虑,春花似錦、人聲如沸镐侯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽苟翻。三九已至韵卤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間崇猫,已是汗流浹背沈条。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留诅炉,地道東北人蜡歹。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像涕烧,于是被迫代替她去往敵國和親月而。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內(nèi)容