国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Flutter多個(gè)頁(yè)面廣播通知傳值

xiaotianyi / 827人閱讀

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

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

為何需要廣播通知傳值?

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

效果如下gif:

思路

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

代碼 創(chuàng)建一個(gè)單例類
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來(lái)記錄名稱
  Map postNameMap = Map();

  GetObject getObject;

  //添加監(jiān)聽(tīng)者方法
  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]);
    }

  }
}

在首頁(yè)添加一個(gè)監(jiān)聽(tīng)

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

  setState(() {

    backColor = object;
  });
});

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

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

最后

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/7203.html

相關(guān)文章

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

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

    shuibo 評(píng)論0 收藏0
  • 跨平臺(tái)技術(shù)演進(jìn)

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

    魏憲會(huì) 評(píng)論0 收藏0
  • 跨平臺(tái)技術(shù)演進(jìn)

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

    MasonEast 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<