Flutter 事件傳遞

2021-10-24 23:01:17 字數 930 閱讀 1812

fluter 事件傳遞

android中可以使用eventbus來進行元件之間的事件傳遞。

flutter:

typedef void eventcallback(arg);

class eventbus

_emap[eventname] ??= new list();

_emap[eventname].add(f);

} /// 移除訂閱者

void unregister(eventname, [eventcallback f]) else

} /// 觸發事件,事件觸發後該事件所有訂閱者會被呼叫

void post(eventname, [arg])

}}

使用:

主頁:

class eventbusmainpage extends statefulwidget

}class _eventbuspagestate extends state

@override

void deactivate() ";

});});

} @override

widget build(buildcontext context) "),

raisedbutton(

onpressed: (),

child: text("去傳遞頁"),)],

));

} @override

void dispose()

}

傳遞頁:

class eventbusnotifypage extends statelesswidget,

child: text("傳送訊息"),

),);

}}

demo位址

flutter 忽略點選事件

absorbpointer開啟absorbing 本身可以接收點選事件,但不會把事件傳遞給子元件。ignorepointer開啟ignoring 本身和子元件都不能接收點選事件。import package flutter material.dart import package flutter c...

Flutter跨元件傳遞資料

除了屬性傳值,對於資料的跨層傳遞,flutter 還提供了三種方案 inheritedwidget,notification,eventbus。inheritedwidget 是 flutter 中的乙個功能型 widget,適用於在 widget 樹中共享資料的場景。通過它,我們可以高效地將資料在...

事件分發和事件傳遞

事件傳遞,是先分發,後攔截,從 父view 開始分發,dispatchtouchevent返回true的時候,由 父view 的ontouchevent處理 消費 返回false,交給 父view 的onintercepttouchevent法來決定是否要攔截這個事件,如果oninterceptto...