前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Flutter】堆叠式卡轮播

【Flutter】堆叠式卡轮播

作者头像
老孟Flutter
发布2021-06-09 10:41:47
4K0
发布2021-06-09 10:41:47
举报
文章被收录于专栏:Flutter

作为移动应用程序开发人员,我们有时需要制作滑动的,动画的背景图像轮播。但是,有时候,我们需要制作一张滑动卡片传送带,其中包含一些具有各种背景颜色,图像或渐变的信息。

在在本博客中,我们将探讨「Flutter中」 的**堆叠式卡轮播。**我们还将实现一个演示程序,并学习在您的flutter应用程序中使用「stacked_card_carousel」包创建一个带有垂直轮播的堆叠卡。

pub地址:https://pub.dev/packages/stacked_card_carousel

用于创建带有堆叠卡片的垂直轮播的小部件。下面的演示视频显示了如何在Flutter中创建带有垂直旋转木马的堆叠卡。它显示了在您的flutter应用程序中如何使用「stacked_card_carousel」软件包来使用堆叠式卡轮播。它显示了垂直圆盘传送带滑动卡的列表,所有卡向上滑动并堆叠,称为堆叠式卡传送带。它会显示在您的设备上。

堆叠式卡轮播的一些属性:

  • **items:**这些属性表示卡小部件的列表。
  • **initialOffset:**这些属性表示卡的初始垂直顶部偏移。
  • **spaceBetweenItems:**这些属性表示项目之间的垂直空间。值从第一个项目的顶部开始。
  • **applyTextScaleFactor:**这些属性表示如果设置为true,则根据文本比例因子线性扩展空间和位置。缩小比例被省略。

使用

添加依赖

代码语言:javascript
复制
stacked_card_carousel: ^0.0.2+1

引入

代码语言:javascript
复制
import 'package:stacked_card_carousel/stacked_card_carousel.dart';

运行命令:「flutter packages get」

启用「AndriodX」

代码语言:javascript
复制
org.gradle.jvmargs=-Xmx1536M
android.enableR8=true
android.useAndroidX=true
android.enableJetifier=true

在libs目录下创建 「style_card.dart」 文件

代码语言:javascript
复制
final Image image;
final String title;
final String description;

const StyleCard({
  Key key,
  this.image,
  this.title,
  this.description
}) : super(key: key);

在卡片内,我们将添加一个height属性并添加一个列小部件。在列小部件中,我们将为图像添加一个容器,添加标题和描述。然后在stacked_card_demo页面上调用该卡。

代码语言:javascript
复制
Card(
  elevation: 4.0,
  child: Padding(
    padding: const EdgeInsets.all(12.0),
    child: Column(
      children: <Widget>[
        Container(
          width: MediaQuery.of(context).size.width*0.7,
          height: MediaQuery.of(context).size.width*0.65,
          child: image,
        ),
        SizedBox(height: 5,),
        Text(
          title,
          style: TextStyle(color: Colors.pinkAccent,fontSize: 22,fontWeight: FontWeight.bold),
        ),
        SizedBox(height: 10,),
        Text(
          description,
          style: TextStyle(color: Colors.black),textAlign: TextAlign.center,
        ),

      ],
    ),
  ),
);

创建 「stacked_card_demo.dart」文件

代码语言:javascript
复制
StackedCardCarousel(
  initialOffset: 40,
  spaceBetweenItems:400 ,
  items: styleCards,
),

添加「initialOffset」表示卡片的初始垂直顶部偏移量,「spaceBetweenItems」表示项目之间的垂直间隔。值从第一个项目的顶部开始。选择一个与您的卡大小相关的值。最后,我们将添加一个表示卡小部件列表的「项目」

创建一个styleCards列表,并在其中添加一个StyleCard()类。

代码语言:javascript
复制
final List<Widget> styleCards = [
  StyleCard(
    image: Image.asset("assets/deepak.jpg"),
    title: "Team Leader",
    description: "It play extremely important role in motivating\nour team and ensuring their success.",
  ),
  StyleCard(
    image: Image.asset("assets/yashwant.png"),
    title: "Secondary Team Leader ",
    description: "It provides guidance, instruction, direction to\nour team. Handsome member in our team.",

  ),
  StyleCard(
    image: Image.asset("assets/akshay.png"),
    title: "Software Engineer",
    description: "Team player, hard worker, expert in\n both andriod and flutter",

  ),
  StyleCard(
    image: Image.asset("assets/aditya.png"),
    title: "Software Engineer",
    description: "Smart, quick learner, and very\ndedicated to the work.",

  ),
  StyleCard(
    image: Image.asset("assets/naveen.png"),
    title: "Associate Software Engineer",
    description: "Flutter developer, keen learner\n very supporting. Bodyguard of our team",
  ),
  StyleCard(
    image: Image.asset("assets/mohit.png"),
    title: "Associate Software Engineer",
    description: "Responsible team member,situation handler,\nand a sharp learner with flutter and blogs.",
  ),
  StyleCard(
    image: Image.asset("assets/shaiq.png"),
    title: "Associate Software Engineer",
    description: "Flutter developer with a passion for learning,\nstar blogger, punctual and \na handsome teammate.",
  ),
  StyleCard(
    image: Image.asset("assets/rakhi.png"),
    title: "Associate Software Engineer",
    description: "Newest team member, with high passion for\nlearning very sharp,and dedicated.Need more\ntime to know about you.",
  ),
];

我们将创建八种样式的卡片,并在其中添加图片,标题和说明。将所有数据添加到**StackedCardCarousel()上。**当 该 代码 运行,你会看到卡的列表。当用户仅以垂直轮播格式向上滑动时,所有卡都将重叠并堆叠到另一个称为堆叠卡轮播中;当用户以垂直格式向下滑动所有向上的卡时,所有卡都将回到原始位置。当我们运行应用程序时,我们应该获得屏幕的输出,如屏幕下方的截图所示。

完整实现

代码语言:javascript
复制
import 'package:flutter/material.dart';
import 'package:flutter_stacked_card_carousel/style_card.dart';
import 'package:stacked_card_carousel/stacked_card_carousel.dart';

class StackedCardDemo extends StatefulWidget {

  @override
  _StackedCardDemoState createState() => _StackedCardDemoState();
}

class _StackedCardDemoState extends State<StackedCardDemo> {
  final List<Widget> styleCards = [
    StyleCard(
      image: Image.asset("assets/deepak.jpg"),
      title: "Team Leader",
      description: "It play extremely important role in motivating\nour team and ensuring their success.",
    ),
    StyleCard(
      image: Image.asset("assets/yashwant.png"),
      title: "Secondary Team Leader ",
      description: "It provides guidance, instruction, direction to\nour team. Handsome member in our team.",

    ),
    StyleCard(
      image: Image.asset("assets/akshay.png"),
      title: "Software Engineer",
      description: "Team player, hard worker, expert in\n both andriod and flutter",

    ),
    StyleCard(
      image: Image.asset("assets/aditya.png"),
      title: "Software Engineer",
      description: "Smart, quick learner, and very\ndedicated to the work.",

    ),
    StyleCard(
      image: Image.asset("assets/naveen.png"),
      title: "Associate Software Engineer",
      description: "Flutter developer, keen learner\n very supporting. Bodyguard of our team",
    ),
    StyleCard(
      image: Image.asset("assets/mohit.png"),
      title: "Associate Software Engineer",
      description: "Responsible team member,situation handler,\nand a sharp learner with flutter and blogs.",
    ),
    StyleCard(
      image: Image.asset("assets/shaiq.png"),
      title: "Associate Software Engineer",
      description: "Flutter developer with a passion for learning,\nstar blogger, punctual and \na handsome teammate.",
    ),
    StyleCard(
      image: Image.asset("assets/rakhi.png"),
      title: "Associate Software Engineer",
      description: "Newest team member, with high passion for\nlearning very sharp,and dedicated.Need more\ntime to know about you.",
    ),
  ];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        automaticallyImplyLeading: false,
        title: Text('Stacked Card Carousel Demo'),
      ),
      body: StackedCardCarousel(
        initialOffset: 40,
        spaceBetweenItems:400 ,
        items: styleCards,
      ),
    );
  }
}

原文地址:https://medium.com/flutterdevs/stacked-card-carousel-in-flutter-9bbb3b89ca81

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 老孟Flutter 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用
  • 完整实现
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档