}
可以带着result回复高级页面。
使用跳转到代码实现详细信息页以指示获取路由参数的列表。 (清单构建文章请参阅Flutter入门和实战(5)请参阅文字和文章排列的清单)。 单击列表行,包含列表数据的id将跳至详细页面。 从详细页面回来后,我会回复其id。 列表小部件中添加了生成列表时初始化的id属性。
classdynamicitemextendsstatelesswidget {
final int id;
最终字符串标题;
最终字符串图像;
完成查看计数;
saticconstdoubleitem _ height=100;
saticconstdoubletitle _ height=80;
staticconstdoublemargin _ size=10;
constdynamicitem(this.id,this.title,this.imageUrl,this.viewCount,
{Key key} )
3360super(key:key;
//…
}
列表中的容器将在GestureDetector中包装,以响应单击事件。 onTap方法被定义为async方法,该方法使用await获取导航返回时的参数,并显示使用SnackBar返回的id。 在这里,pushNamed拿着Map对象将列表的id传递给了详细页面。
@override
构件构建(构建上下文上下文) {
返回获取检测器(
child: Container (
margin : edge insets.all (margin _ size )是,
child: Row (
crossaxisalignment 3360 crossaxisalignment.start,
children: [
_imagewrapper(this.imageurl ),
扩展(
child: Column (
crossaxisalignment 3360 crossaxisalignment.start,
children: [
_ title wrapper (上下文,this.title ),
_ view count wrapper (this.view count.tostring ) )、
]、
请参阅。
)
]、
请参阅。
请参阅。
onTap: ) )同步{
MapString,dynamicrouteparams={‘id’: id };
var arguments=await navigator.of (context ) )。
. push named (router table.dynamic detail,arguments: routeParams );
caffoldmessenger.of (上下文).showsnackbar ) snackbar (
内容:文本(“从动态${(argumentsasmapstring,动态)‘id’}返回”),
);
(,
);
}
这里还使用了arguments变量,它接收导航返回的参数。 如果导航具有返回参数,则返回Future对象,可以使用await接收。 然后,使用as转换为实际类型使用。 在详细信息页面上,Flutter提供ModalRoute类,以从当前上下文中获取路由设置参数。 代码如下。
classdynamicdetailextendsstatelesswidget {
constdynamicdetail (密钥) ) :super (密钥:密钥);
@override
构件构建(构建上下文上下文) {
MapString,动态路由参数=
modal route.of (上下文).settings? arguments;
返回willpopscope (
child: Scaffold (
appBar: AppBar (
title 3360文本(动态详细信息)、
brightness: Brightness.dark,
请参阅。
body:中心(
child: Text (“产品id : $ { route params [‘id’}”)、
请参阅。
请参阅。
onwillpop : (同步)。
navigator.of(context ).pop ) {‘id’: route params [‘id’} };
返回真;
(,
);
}
}
实际上,此modalroute.of(context ).settings是上一个路由块的onGenerateRoute的settings参数,因此它将添加诸如全局参数之类的路由参数这里有需要注意的地方。 为了在返回时携带参数,必须阻止返回响应事件。 此时,可以使用WillPopScope包装整个组件。 该方法有两个参数。
child :子组件,即原始页面组件; onWillPop :在返回之前阻止处理并返回单个Futurebool对象。 如果为false,则不返回。 如果为true,则返回上一级。 在这里,我们调用了带参数的pop方法来返回参数。 实际上,表格没有保存,经常会做其他处理,比如询问是否确认李可,在很多电商的活动页面上询问“忍痛离开”还是“多看一会儿”等等。 最终效果最终执行效果如下图所示,详细页面获取id参数,返回时也接收到对应的id。
路由参数侦听路由参数可以通过onGenerateRoute侦听进行附加处理。 以下是示例。 请注意,这里只是例子。 因为settings。 由于arguments是任意类型,因此转换可能失败。 在实际业务中,为了避免因参数形式的不统一而发生异常,最好约定路由参数的类型。
静态路由ongeneraterou
《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享
路由设置设置(te ) {
代码讲座(**
【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享
路由设置设置(te ) {