Flutter价格展示插件pricing_cards的使用

发布于 1周前 作者 sinazl 来自 Flutter

Flutter价格展示插件pricing_cards的使用

pricing_cards是一个用于Flutter项目的定价卡片插件,支持自定义样式选项。你可以添加任意数量的卡片,并个性化每个卡片的样式。

示例

以下是一个包含所有参数的示例代码和截图:

示例截图

示例截图

示例代码

import 'package:flutter/material.dart';
import 'package:pricing_cards/pricing_cards.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  [@override](/user/override)
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Plugin example app'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              PricingCards(
                pricingCards: [
                  PricingCard(
                    title: 'Monthly',
                    price: '\$ 9.99',
                    subPriceText: '/mo',
                    billedText: 'Billed monthly',
                    onPress: () {
                      // 处理点击事件
                    },
                  ),
                  PricingCard(
                    title: 'Annual',
                    price: '\$ 59.99',
                    subPriceText: '/yr',
                    billedText: 'Billed anually',
                    mainPricing: true,
                    mainPricingHighlightText: 'Save money',
                    onPress: () {
                      // 处理点击事件
                    },
                  )
                ],
              ),
              SizedBox(height: 30),
              PricingCards(
                pricingCards: [
                  PricingCard(
                    title: 'Monthly',
                    price: '\$ 9.99',
                    subPriceText: '/mo',
                    billedText: 'Billed monthly',
                    onPress: () {
                      // 处理点击事件
                    },
                    cardColor: Colors.green,
                    priceStyle: TextStyle(
                      fontSize: 32,
                      fontWeight: FontWeight.bold,
                      color: Colors.white,
                    ),
                    titleStyle: TextStyle(
                      fontSize: 16,
                      color: Colors.white,
                    ),
                    billedTextStyle: TextStyle(
                      fontSize: 12,
                      color: Colors.white,
                    ),
                    subPriceStyle: TextStyle(
                      fontSize: 12,
                      color: Colors.white,
                    ),
                    cardBorder: RoundedRectangleBorder(
                      side: BorderSide(color: Colors.red, width: 4.0),
                      borderRadius: BorderRadius.circular(8.0),
                    ),
                  ),
                  PricingCard(
                    title: 'Annual',
                    price: '\$ 59.99',
                    subPriceText: '/yr',
                    billedText: 'Billed anually',
                    mainPricing: true,
                    mainPricingHighlightText: 'Save money',
                    onPress: () {
                      // 处理点击事件
                    },
                    cardColor: Colors.blue,
                    priceStyle: TextStyle(
                      fontSize: 32,
                      fontWeight: FontWeight.bold,
                      color: Colors.white,
                    ),
                    titleStyle: TextStyle(
                      fontSize: 16,
                      color: Colors.white,
                    ),
                    billedTextStyle: TextStyle(
                      fontSize: 12,
                      color: Colors.white,
                    ),
                    subPriceStyle: TextStyle(
                      fontSize: 12,
                      color: Colors.white,
                    ),
                    cardBorder: RoundedRectangleBorder(
                      side: BorderSide(color: Colors.red, width: 4.0),
                      borderRadius: BorderRadius.circular(8.0),
                    ),
                  )
                ],
              ),
            ],
          ),
        ),
      ),
    );
  }
}

更多关于Flutter价格展示插件pricing_cards的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter价格展示插件pricing_cards的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中使用pricing_cards插件来展示价格卡片的示例代码。这个插件可以帮助你快速创建漂亮的价格展示卡片。

首先,你需要在你的pubspec.yaml文件中添加pricing_cards依赖项:

dependencies:
  flutter:
    sdk: flutter
  pricing_cards: ^最新版本号  # 请替换为实际可用的最新版本号

然后运行flutter pub get来安装依赖项。

接下来,你可以在你的Flutter应用中使用PricingCard组件。以下是一个简单的示例,展示了如何使用pricing_cards插件来创建一个价格卡片列表:

import 'package:flutter/material.dart';
import 'package:pricing_cards/pricing_cards.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Pricing Cards Example',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: PricingScreen(),
    );
  }
}

class PricingScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Pricing Cards Example'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.center,
          children: <Widget>[
            PricingCard(
              title: 'Basic Plan',
              price: '\$19.99',
              period: 'per month',
              features: [
                '10GB Storage',
                'Basic Support',
                'Email Access',
              ],
              buttonLabel: 'Get Started',
              onButtonPressed: () {
                // 处理按钮点击事件
                print('Basic Plan button clicked');
              },
            ),
            SizedBox(height: 24),
            PricingCard(
              title: 'Standard Plan',
              price: '\$39.99',
              period: 'per month',
              features: [
                '50GB Storage',
                'Priority Support',
                'Email & Chat Access',
              ],
              isFeatured: true,  // 标记为特色计划
              buttonLabel: 'Choose Plan',
              onButtonPressed: () {
                // 处理按钮点击事件
                print('Standard Plan button clicked');
              },
            ),
            SizedBox(height: 24),
            PricingCard(
              title: 'Premium Plan',
              price: '\$79.99',
              period: 'per month',
              features: [
                'Unlimited Storage',
                '24/7 Support',
                'Email, Chat & Phone Access',
              ],
              buttonLabel: 'Subscribe Now',
              onButtonPressed: () {
                // 处理按钮点击事件
                print('Premium Plan button clicked');
              },
            ),
          ],
        ),
      ),
    );
  }
}

在这个示例中,我们创建了一个简单的Flutter应用,它包含一个PricingScreen,其中展示了三个不同的价格卡片。每个价格卡片都有标题、价格、周期、功能列表和一个按钮。我们还演示了如何使用isFeatured属性来标记一个计划为特色计划。

请注意,你需要替换定价_cards: ^最新版本号中的最新版本号为实际的最新版本号,可以从pricing_cards插件的pub.dev页面获取。

这个示例展示了pricing_cards插件的基本用法,你可以根据需求进一步自定义和扩展这些卡片。

回到顶部