趁手利器,FSuper

· chenbingx · Created at · Last by kkmmi68 Replied at · 894 hits
7990 1585234642

现在,我需要向你隆重介绍,可能即将在你的 Flutter 编程之路中,令你爱不释手的 趁手利器 之一 —— F...Super

FSuper【阿里巴巴-飞猪-Fliggy Android Team
技术团队】
开发的 FWidgets 系列组件之一。是由 Github 2.8k+ star 项目 《SuperTextView》 作者 CoorChice 操刀制作开发的 Flutter 组件。

它能够助你十分便捷的实现诸多视觉效果。

它所支持的布局方式能够轻松拆解构建绝大部分复杂布局。

它让好,更好一点!

✨ 特性

来看看 FSuper 为你带来些什么?

  • 丰富的 边角 效果

  • 精美的 边框 装饰

  • 天然支持精彩的 富文本

  • 渐变效果 也不在话下

  • 更具空间感的 阴影

  • 不简单的 小红点

  • 灵活且强大的 相对位置布局

🛸 传送区

【传送门:FSuper Github 主页 - 感谢您的 Star 🌟】

【传送门:FSuper Documentation】

🔲 边角

随心所欲,彰显个性。

FSuper 支持灵活、丰富的边角设置。圆角、斜角、1个、2个、..,你大可随心所欲。

仅需两个属性 cornercornerStyle,就能构建各种千奇百怪的边角效果。

🖼 边框

简单一点,再简单一点。

FSuper 添加边框,足够简单。

只需 strokeColorstrokeWidth 属性搭配,即可立即获得令人满意的边框装饰效果。即使是再加上边角效果,同样也足够简单。

📝 富文本

浑然天成,一步到位。

FSuper 天然支持了直接配置富文本效果,而无需开发者增加而外的组件。一切都在 FSuper 中完成。

FSuper(
  // #1
  text: "En.. ",
  spans: [
    // #2
    TextSpan(
        text: "FWidget",
        style: TextStyle(
          color: Color(0xffffc900),
          backgroundColor: Colors.black38,
          fontSize: 20,
        )),
    // #3
    TextSpan(text: " are really "),
    // #4
    TextSpan(
        text: "delicious",
        style: TextStyle(
          color: Colors.blue,
          fontSize: 20,
          fontStyle: FontStyle.italic,
        )),
    // #5
    TextSpan(text: "!"),
    // #6
    TextSpan(
      text: "\nYou can try to ",
    ),
    // #7
    TextSpan(
      text: "click here",
      style: TextStyle(
        color: Colors.redAccent,
        fontSize: 18,
        decoration: TextDecoration.underline,
        decorationColor: Colors.blue,
        decorationStyle: TextDecorationStyle.wavy,
      ),
      recognizer: TapGestureRecognizer()
        ..onTap = () {
          _showDialog(
              context, "YA! How dare you clicked me?");
        },
    ),
    // #8
    TextSpan(text: " !"),
  ],
),

FSuperFlutter 所提供的富文本支持进行了精巧的融合,使得在兼具 FSuper 所提供的一切能力的前提下,不用引入新的组件,而能够支持富文本。这真是太棒了👏!

🧡 渐变效果

色彩够多,才够出彩。

通过 gradient 属性,你可以直接为 FSuper 直接配置 LinearGradientRadialGradientSweepGradient 等多种渐变色背景效果。

FSuper 在削减层级嵌套上,始终是一把利器。

🔳 阴影

要多立体,都行!

FSuper 通过简单的 shadowColorshadowBlur 属性即可控制组件阴影的颜色、大小。

代码虽然的简单,但是立体效果绝对不简单。

🎈 小红点

内藏玄机,妙不可言。

FSuper 能够让小红点在你的应用中大放异彩。关于小红点位置确定的相关计算,由 FSuper 完成。你只需要关注你需要什么就够了。

这是显而易见的改变,从此构建小红点不在话下。

🧸 相对位置布局

再复杂,也简单。

FSuper 支持配置多达两个子组件 child1child2,你可以通过相对位置描述来定位它们。这让很多不易构建的效果,变的简单清晰。

FSuper 能够聪明的确定自身内容区域大小,进一步根据你对子控件的相对位置配置,确定它们相对于内容区域的位置。这能解决很多问题。

特别是当你无法知道内容区域大小,而子控件又需要上居中对齐,或其它一些对齐方式时,你需要额外创建很多组件来嵌套,以构建出这种相对位置的效果。有时,你甚至不得不需要对绘制进行监听,以便在拿到主要尺寸后,进一步确定位置关系。

FSuper 能够阻止这些问题出现在你的面前,一切都将变的足够简单。

在不使用 FSuper 情况下,组织图中 【Warning】视图是比较困难的。除了需要额外增加组件嵌套,你很难在内容区域大小不确定的情况下来确定诸如 centerLeftcenterRight、.. 等对齐效果。更不用说需要对齐的所有组件的大小都不确定的情况了。

FSuper 使得这样的布局易于构建。如果一个 FSuper 不够,你甚至可以将一个 FSuper 作为另一个 FSuper 的子组件。

FSuper(
  child1: FSuper(
    child1: FSuper(),
  ),
  child2: FSuper(
    child1: FSuper(
      child1: FSuper(),
    ),
  ),
)

这看起来可能很朋克!但它确实管用。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SV0nmblD-1585221927771)(https://raw.githubusercontent.com/chenBingX/img/master/Flutter/fsuper/fsuper_2.jpg)布局]

上图中的效果,均由 FSuper 构建。

😃 如何使用?

在项目 pubspec.yaml 文件中添加依赖:

🌐 pub 依赖方式

dependencies:
  fsuper: ^<版本号>

⚠️ 注意,请到 pub 获取 FSuper 最新版本号

🖥 git 依赖方式

dependencies:
  fsuper:
    git:
      url: 'git@github.com:Fliggy-Android-Team/fsuper.git'
      ref: '<分支号 或 tag>'

⚠️ 注意,分支号 或 tag 请以 FSuper 官方项目为准。

感觉还不错?请到 《FSuper》的 Github 主页投出您认可的一个 Star 🌟 吧!

共收到 20 条回复
7990 1585234642
chenbingx · #1 ·

入坑 Flutter 的同学欢迎使用讨论哦!

2Floor Deleted
3Floor Deleted
4Floor Deleted
5Floor Deleted
6Floor Deleted
7Floor Deleted
8Floor Deleted
9Floor Deleted
10Floor Deleted
14Floor Deleted
15Floor Deleted
16Floor Deleted
14Floor Deleted
需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up