Flutter 边缘渐隐遮罩实现指南

高桥凉介
    分享互动规则

    核心思路

    Flutter 实现边缘渐隐最正统的方式是 ShaderMask + LinearGradient,关键参数只有一个:

    blendMode: BlendMode.dstIn
    

    这个 blendMode 告诉 Flutter:用 Shader 的 alpha 通道来决定子组件的不透明度。Gradient 两端是 Colors.transparent(alpha=0),中间是 Colors.white(alpha=1),合成后子组件两端自然渐隐。


    三种使用场景小结

    ① 静态场景(背景色固定):用上面的基础写法,5 行搞定。

    ② 通用封装(推荐):点击「封装成组件」Tab,EdgeFadeMask 支持水平/垂直、单侧/双侧渐隐,项目中复用。

    ③ 动态渐隐(仿抖音效果):点击「结合 ScrollView」Tab,监听 ScrollController 动态控制 fadeLeft / fadeRight,滚到头时对应侧消失渐隐效果,体验更自然。


    vs. Stack 叠加方案

    Stack + 渐变 Container 虽然更好理解,但有个致命缺点:渐变色必须和背景色完全一致,一旦背景是图片或复杂渐变背景就完全失效。ShaderMask 无此限制,是工程上更健壮的选择。

    评论 0

    支持 @用户名 提醒对方(需为站内已注册用户名);回复仅支持一层楼中楼。

    登录后发表评论、回复与 @ 提及。

    举报

    举报会匿名发送给管理员审核。

    • 暂无评论,来发表第一条。

    码谱 · The Digital Atelier · 技术内容社区

    下载 Android 版

    下载完成后,点击通知栏中的安装包完成安装