flutter_appears_randomly

Animation with random gradients

随机渐变出现的动画

使用示例

Container(
  padding: EdgeInsets.symmetric(horizontal: 16), // 为了防止贴边不美观。(可以去掉)
  child: AppearsRandomlyWidget(
    width: screenWidth, // 整体的宽高。用于计算 item 出现的范围
    height: screenWidth,
    
    itemWidth: 56, // 每个 item 的宽高。用于计算 item 的出现
    itemHeight: 56,
    itemSizeRange: 16, // 从小变大时,最大/最小的缩放范围。(会生成随机值,此处为最大值)
    
    centerRestrictedArea: Size(iconWidth, iconWidth),  // 中心布局的范围
    centerChild: Container( // 中心布局。(可为空)
      width: iconWidth,
      height: iconWidth,
      alignment: Alignment.center,
      decoration: BoxDecoration(
        borderRadius: BorderRadius.circular(120),
        border: Border.all(color: Colors.white, width: 3),
      ),
      child: ClipOval(
        child: Image.asset(_getImage("header", format: "webp"), width: iconWidth, height: iconWidth),
      ),
    ),
    
    itemCount: list.length, // 总数
    itemBuilder: (context, index) { // item 布局
      var imgRes = list[index];
      return GestureDetector(
        child: Container(
          decoration: BoxDecoration(
            borderRadius: BorderRadius.circular(56),
            border: Border.all(color: Colors.white, width: 0.5),
          ),
          child: ClipOval(child: Image.asset(_getImage(imgRes), width: 52, height: 52)),
        ),
        onTap: () {
          // TODO: 点击
        },
      );
    },
  ),
),

Libraries

appears_randomly_widget
stagger_animation