我正在制作一个聊天应用程序,并想在其中添加“可见”选项,因此我想知道用户何时打开页面 我不知道这是我的路线
class Routes {
final routes = <String, WidgetBuilder>{
'/auth': (BuildContext context) => AuthScreen(),
'/home': (BuildContext context) => HomeScreen(),
'/profile/edit': (BuildContext context) => EditUserScreen(),
'/': (BuildContext context) => SplashScreen(),
'/phonelog': (BuildContext context) => MobileAuthScreen(),
'/Chat': (BuildContext context) => Chat(),
};
答案 0 :(得分:0)
这里是一个例子:
您可以在路线创建期间添加模型,或者如果您使用任何类型的服务定位器或继承的小部件,都可以提供模型。
不只是在模型中添加您已经看到路线的标记。
class Routes {
final routes;
final RouteModel routeModel;
Routes()
: routeModel = RouteModel(),
routes = <String, WidgetBuilder>{
'/auth': (BuildContext context) => AuthScreen(routeModel),
'/home': (BuildContext context) => HomeScreen(routeModel),
'/profile/edit': (BuildContext context) => EditUserScreen(routeModel),
'/': (BuildContext context) => SplashScreen(routeModel),
'/phonelog': (BuildContext context) => MobileAuthScreen(routeModel),
'/Chat': (BuildContext context) => Chat(routeModel),
};
}
class RouteModel {
Map<String,bool> seen = {};
}
稍后在您的路线中,您想要以某种方式添加看到的标记,并基于该标记构建窗口小部件。
void aboutToNavigateOut(){
routeModel.seen['/home'] = true;
}
Widget build(context){
return Text(routeModel.seen['/home']?"Seen":"UnSeen");
}
答案 1 :(得分:0)
有多种修复方法。
使用onviewpage初始化钩子来了解用户已经访问了该应用程序。
如果您希望在屏幕或特定容器上单击一次后看到see = true,则可以使用主机侦听器来了解用户已访问