成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Flutter多個頁面廣播通知傳值

xiaotianyi / 834人閱讀

摘要:在第一頁添加一個通知監(jiān)聽者,第三頁發(fā)送通知告知第一頁。在需要發(fā)送通知的頁面也繼續(xù)創(chuàng)建這個單例類,通過回調(diào)的方式傳遞值。

Flutter查閱了很多資料,暫時(shí)沒有發(fā)現(xiàn)類似Android/iOS的頁面廣播通知傳值,如有歡迎評論告知~

為何需要廣播通知傳值?

假如有一個需求是這樣的,導(dǎo)航有三個頁面,第一頁有一個按鈕跳到第二頁,第二頁有一個按鈕跳到第三頁,第三頁有個按鈕來改變第一頁的背景色。這時(shí)候就可以通過通知傳值的方式。在第一頁添加一個通知監(jiān)聽者,第三頁發(fā)送通知告知第一頁。

效果如下gif:

思路

我的思路是創(chuàng)建一個單例類,在你需要監(jiān)聽的頁面創(chuàng)建這個監(jiān)聽者。在需要發(fā)送通知的頁面也繼續(xù)創(chuàng)建這個單例類,通過回調(diào)的方式傳遞值。

代碼 創(chuàng)建一個單例類
typedef GetObject = Function(dynamic object);

class NotificationCenter {
  // 工廠模式
  factory NotificationCenter() => _getInstance();

  static NotificationCenter get instance => _getInstance();
  static NotificationCenter _instance;

  NotificationCenter._internal() {
    // 初始化
  }

  static NotificationCenter _getInstance() {
    if (_instance == null) {
      _instance = new NotificationCenter._internal();
    }
    return _instance;
  }

  //創(chuàng)建Map來記錄名稱
  Map postNameMap = Map();

  GetObject getObject;

  //添加監(jiān)聽者方法
  addObserver(String postName, object(dynamic object)) {

    postNameMap[postName] = null;
    getObject = object;
  }

  //發(fā)送通知傳值
  postNotification(String postName, dynamic object) {
    //檢索Map是否含有postName
    if (postNameMap.containsKey(postName)) {

      postNameMap[postName] = object;
      getObject(postNameMap[postName]);
    }

  }
}

在首頁添加一個監(jiān)聽

//添加監(jiān)聽者
NotificationCenter.instance.addObserver("changColor", (object){

  setState(() {

    backColor = object;
  });
});

在第三頁發(fā)送通知

//通知將第一頁背景色變成紅色
NotificationCenter.instance.postNotification("changColor", Colors.red);

最后

代碼可能寫的不好,只是提供一個自己的想法。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/7203.html

相關(guān)文章

  • 加推Weex實(shí)踐之路(上)

    摘要:我們參考小程序的設(shè)計(jì)思路進(jìn)行了優(yōu)化升級,為每一個需要特有化配置的頁面添加一個格式的配置文件,配置文件包括導(dǎo)航欄的配置頁面級別的配置跳轉(zhuǎn)的配置等,將配置工程化標(biāo)準(zhǔn)化。設(shè)置導(dǎo)航欄按鈕包含按鈕樣式的數(shù)組通過完成按鈕事件的回調(diào)。一、背景1.為什么是Weex在公司快速發(fā)展的大環(huán)境下,App的更新迭代高速、高頻,技術(shù)團(tuán)隊(duì)平均兩周便可誕生一款中型App,但App團(tuán)隊(duì)只有6個人(iOS 、Android各3...

    shuibo 評論0 收藏0
  • 跨平臺技術(shù)演進(jìn)

    摘要:接下來,我將從原理優(yōu)缺點(diǎn)等方面為大家分享跨平臺技術(shù)演進(jìn)。小程序年是微信小程序飛速發(fā)展的一年,年,各大廠商快速跟進(jìn),已經(jīng)有了很大的影響力。下面,我們以微信小程序?yàn)槔?,分析小程序的技術(shù)架構(gòu)。 前言 大家好,我是simbawu ,@BooheeFE Team Leader,關(guān)于這篇文章,有問題歡迎來這里討論。 隨著移動互聯(lián)網(wǎng)的普及和快速發(fā)展,手機(jī)成了互聯(lián)網(wǎng)行業(yè)最大的流量分發(fā)入口。以及隨著5G...

    魏憲會 評論0 收藏0
  • 跨平臺技術(shù)演進(jìn)

    摘要:接下來,我將從原理優(yōu)缺點(diǎn)等方面為大家分享跨平臺技術(shù)演進(jìn)。小程序年是微信小程序飛速發(fā)展的一年,年,各大廠商快速跟進(jìn),已經(jīng)有了很大的影響力。下面,我們以微信小程序?yàn)槔?,分析小程序的技術(shù)架構(gòu)。 前言 大家好,我是simbawu ,@BooheeFE Team Leader,關(guān)于這篇文章,有問題歡迎來這里討論。 隨著移動互聯(lián)網(wǎng)的普及和快速發(fā)展,手機(jī)成了互聯(lián)網(wǎng)行業(yè)最大的流量分發(fā)入口。以及隨著5G...

    MasonEast 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<