该死的我需要一些建议,以实现集中所有点击事件在Flutter。实际上,我正在开发一个应用程序,其中我集成了Google Analytics事件,因此当尝试在不同屏幕上捕获数据时,单击事件在每个屏幕上,我都调用Analytic事件,因此在每次单击时调用/编写这些方法是否有任何方法来集中此逻辑。提前感谢您的建议我想集中每个点击事件的逻辑
8yoxcaq71#
单击发生在应用程序中完全不同的位置。你在那里处理它们。主要思想,你应该使用某种状态管理:继承Widget/provider/bloc/riverpod等因此,您应该有一个状态管理类示例,它将负责调用分析事件,并将在所有应用程序中可用。例如,对于Cubit,每一个需要单击的地方,您将执行如下操作:
onTap: () { BlocProvider.of<AlalyticsCubit>(context).sendEvent( eventType, someDataYourAnalyticsNeed, ); }
字符串和你的cubit(选择任意- inheritedWidget/provider/bloc/reverpod):
class AlalyticsCubit extends Cubit<AlalyticsState> { AlalyticsCubit(this.analytic) : super(InitialAlalyticsState(); final YourGoogleAnalytic analytic; void sendEvent( EventType eventType, Map<String, dynamic> someDataYourAnalyticsNeed, ) { analytic.sendEvent(eventType, someDataYourAnalyticsNeed); } }
型开始时:
@override Widget build(BuildContext context) => BlocProvider( create: (_) => AlalyticsCubit(YourGoogleAnalytic()), child: MaterialApp( debugShowCheckedModeBanner: false, theme: AppTheme.themeData(), onGenerateRoute: _routeBuilder.onGenerateRoute, );
型
1条答案
按热度按时间8yoxcaq71#
单击发生在应用程序中完全不同的位置。你在那里处理它们。主要思想,你应该使用某种状态管理:继承Widget/provider/bloc/riverpod等因此,您应该有一个状态管理类示例,它将负责调用分析事件,并将在所有应用程序中可用。
例如,对于Cubit,每一个需要单击的地方,您将执行如下操作:
字符串
和你的cubit(选择任意- inheritedWidget/provider/bloc/reverpod):
型
开始时:
型