打开 file_show_store,在这个 store 里我们继续再添加几个计算属性,返回的值的类型是 FileMetadataListItem? 名字是 camera ,在里面声明一个 FileMetadataListItem? 名字是 item 。 最终可以返回这个 item。
然后声明一个 make ,值是 metadata?.make ,相机的品牌,再添加一个 model ,值是 metadata?.model ,相机的型号。
判断一下 make 是不是不等于 null ,满足条件,在里面声明一个 value,值是一个字符串,里面先是 $make 表示的值 ,然后可以判断一下 model 是不是不等于 null ,如果是,再添加一个空格 $model ,不然就是一个空白。
设置一下 item ,新建一个 FileMetadataListItem ,它的 title 是 相机,value 是 value 。
lens
下面再准备一下镜头相关的数据,复制一份这个 camera ,修改一下名字,设置成 lens, 声明一个 lensMake,值是 metadata 里的 lensMake,镜头的品牌,再声明一个 lensModel,值是 metadata 里的 lensModel 。
判断一下 lensMake 是不是不等于 null ,如果是,这个 value 的值先是 lensMake,然后判断 lensModel 是不是不等于 null ,如果是添加一个空格 lensModel 。
设置一下 item ,把 title 设置成镜头。
kit
然后再把相机还有镜头放在一个列表里,再定义一个计算属性,返回的值的类型是 List
return 的值,判断一下 items.length 是不是大于 0 ,如果是就返回 items,不然就返回 null 。
getFileById
找到 getFileById 这个方法,在这个 cache 里面,再添加一个 'kit',值是 kit 这个计算属性的值。
post_bottom_sheet_file_metadata
打开 post_bottom_sheet_file_metadata,先准备一下需要的设备数据,复制一份这个 specs,改下名字,换成 kit ,值是 cache,value 里的 kit 。
在这个 Column 的 children 里面,判断一下 kit 不等于 null ,满足条件这里再添加一个 FileMetadataList,把 kit 交给它。
测试
重新启动一下应用,打开一个内容页面,然后打开内容底板,你会发现,这里会显示照片的拍摄设备相关的信息。
这两个数据列表之间可以添加一个分隔线,在这个 post_bottom_sheet_file_metadata 里面,声明一个 separator,值是一个 Container,用 padding 设置一下边距,EdgeInsets.only,bottom 是 16 ,它的 child 用一个 Divider,把 thickness 设置成 1 。
然后在这个 Column 的 children 里面,判断一下 kit 不等于 null,满足条件,这里再添加一个 separator。