摘要:在第一頁(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è)。
思路
我的思路是創(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]);
}
}
}
//添加監(jiān)聽(tīng)者
NotificationCenter.instance.addObserver("changColor", (object){
setState(() {
backColor = object;
});
});
//通知將第一頁(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
摘要:我們參考小程序的設(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...
摘要:接下來(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...
摘要:接下來(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...
閱讀 2583·2021-09-26 10:13
閱讀 5992·2021-09-08 10:46
閱讀 694·2019-08-30 15:53
閱讀 2968·2019-08-29 16:13
閱讀 2762·2019-08-26 12:23
閱讀 3488·2019-08-26 11:24
閱讀 1095·2019-08-23 18:09
閱讀 1036·2019-08-23 17:08