📜  颤振迭代列表小部件 - Dart (1)

📅  最后修改于: 2023-12-03 15:12:55.199000             🧑  作者: Mango

颤振迭代列表小部件 - Dart

颤振迭代列表小部件是一个可以生成迭代列表的Dart小部件。此小部件可以在Flutter中使用,用于构建伸缩列表,其中迭代过程中的元素在滚动时会闪烁。

代码示例
import 'package:flutter/material.dart';
import 'package:shimmer/shimmer.dart'; //需要在pubspec.yaml中添加shimmer库

class ShimmerListWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container(
      height: 300.0,
      child: ListView.builder(
        scrollDirection: Axis.horizontal,
        itemBuilder: (BuildContext context,int index){
          return SizedBox(
            height: 300.0,
            width: 200.0,
            child: Card(
              child: Shimmer.fromColors(
                baseColor: Colors.grey[300],
                highlightColor: Colors.grey[100],
                child: Column(
                  mainAxisAlignment: MainAxisAlignment.center,
                  children: <Widget>[
                    Container(
                      height: 100.0,
                      width: 100.0,
                      decoration: BoxDecoration(
                        color: Colors.grey,
                        borderRadius: BorderRadius.circular(50.0),
                      ),
                    ),
                    SizedBox(height: 20.0,),
                    Container(
                      height: 20.0,
                      width: 70.0,
                      color: Colors.grey,
                    ),
                    SizedBox(height: 10.0,),
                    Container(
                      height: 20.0,
                      width: 50.0,
                      color: Colors.grey,
                    ),
                  ],
                ),
              ),
            ),
          );
        },
      ),
    );
  }
}
解析代码示例
  • ShimmerListWidget继承自StatelessWidget,因为我们不需要更新小部件的状态。
  • 使用Container包装ListView.builder,以使列表具有指定的高度。
  • 使用SizedBox包装Card,以使每个卡片具有指定的高度和宽度。
  • 使用Shimmer.fromColors动画多组颜色以实现抖动效果,并包装具有指定高度和宽度的容器。
结论

颤振迭代列表小部件是一个非常有用的Dart小部件,它可以为滚动列表添加动态效果,使其更具吸引力。有了它,你的Flutter应用程序将变得更加有吸引力和互动。