用户登录

在全屏幕的内容页面上,如果没有使用沉浸式,可以在页面底部再添加一些东西,比如内容的标题,作者,还有一些相关的动作。在项目里再创建一个文件,放在 lib/post/components 里面,名字是 post_show_fullscreen_bottom.dart

文件里定义一个小部件,名字是 PostShowFullscreenBottom,小部件里添加一个属性,类型是 Post 名字是 post,再添加一个构造方法,PostShowFullScreenBottom,添加一个 this.post 参数。

打开 post_image_view,在这个 Stack 的 children 里面,判断一下 !immersiveMode 如果没使用沉浸式,这里再添加一个小部件,PostShowFullscreenBottom ,提供一个 widget.post 。

再回到 post_show_fullscreen_bottom 继续编辑这个小部件。在小部件的 build 方法里,声明一个 textColor ,它的值可以作为文字的颜色,Colors.white60 ,再声明一个 dividerColor,它的值可以作为分隔线的颜色,Colors.white10 。

然后声明一个 content ,先用一个 Container 小部件,里面用 padding 设置一下边距,EdgeInsets.only,bottom 是 8 ,它的 child 暂时用一个 Text 小部件,文字是 Content 。

下面再声明一个 divider ,分隔线小部件,一个 Container 小部件,里面用 padding 添加点边距,EdgeInsets.only,bottom 是 16 ,它的 child 是一个 Divider 小部件,thickness 是 1 ,color 设置成上面定义的 dividerColor 。

然后再声明一个 actions,值是一个 Text 小部件,文字是 Actions 。

方法 return 的东西我们先用一个 Positioned 设置一下小部件在 Stack 里的定位,bottom 是 0,left 是 0 ,再把 right 也设置成 0 。它的 child 用一个 Container,先用 padding 设置一下边距,EdgeInsets.only,top 是 16,right 是 32,bottom 是 32,left 也是 32 。

下面再用 decoration 设置一下容器的装饰,BoxDecoration,添加一个渐变,gradient,新建一个 LinearGradient 线性渐变,begin 是 Alignment.topCenter,end 结束位置是 Alignment.bottomCenter。colors 是一组渐变颜色,Colors.transparent ,第二个颜色是 Colors.black 。

容器的 child 是一个 Column ,里面用 crossAxisAlignment 把交叉轴对齐设置成 CrossAxisAlignment.start。 在它的 children 里面,添加一个 content ,一个 divider ,再添加一个 actions 。

测试

观察一下在全屏幕内容页面上,没有使用沉浸式的时候页面底部的显示,这里会显示一个 PostShowFullscreenBottom 这个小部件。

创建内容全屏底部小部件(PostShowFullscreenBottom)《 Flutter 移动端实例:沉浸模式 》

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点