点按这个拍摄信息小图标可以弹出一个底板小部件,先在项目里新建一个文件,放在 lib/post/bottom_sheet 里面,名字是 post_bottom_sheet.dart 。
在这个文件里定义一个小部件,名字是 PostBottomSheet ,小部件里添加一个属性,final Post 名字是 post,添加一个构造方法,PostBottomSheet,一个参数,this.post。
小部件里面用一个 Container 小部件,里面用 padding 先设置一下边距,EdgeInsets.only ,top 是 16,left 是 24,right 是 24 。 再用 color 可以设置一下容器的背景颜色,Theme.of(context).scaffoldBackgroundColor 。
小部件 child 用一个 Column 小部件,在它的 children 里面,随便先添加一个 Text 小部件,文字是 PostBottomSheet。
post_show_header_meta
打开 post_show_header_meta ,设置一下这里用的这个 GestureDetector 的 onTap ,在它里面执行一下 showModalBottomSheet ,显示一个底板,context 是 context,再提供一个 builder ,用它返回要在底板显示的小部件,这里用一下 PostBottomSheet ,提供一个 post 参数。
在小部件里添加一个属性,类型是 Post,名字是 post ,再添加一个构造方法,PostShowHeaderMeta,给它一个参数,this.post。
打开 post_show_header ,使用 PostShowHeaderMeta 的时候,提供一个 post 。
回来复制一下这个 showModalBottomSheet 。
post_show_file_metadata
打开 post_show_file_metadata ,选中这个 Container 小部件,给它添加一个包装,添加一个 GestureDetector,设置一下它的 onTap ,把刚才复制的 showModalBottomSheet 粘贴到这里。这样点按内容页面上的拍摄信息内容也可以弹出底板。
给它的参数值设置成 widget.post 。
测试
在模拟器测试一下,按一下这个拍摄信息内容,可以弹出底板,上面显示的是 PostShowBottomSheet 小部件。 关掉这个底板,再试一下,按一下内容页面右上角这个拍摄信息小图标,同样可以弹出底板,显示 PostShowBottomSheet 小部件。