Flutter容器简化插件easy_container的使用

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

Flutter容器简化插件easy_container的使用

📂️ Table of Contents

📸 Screenshots

Sample Containers On Pressed Animation
Sample Containers On Pressed Animation

✨ Features

  • Gesture Detectors: Built-in support for onTap, onLongPress, and more.
  • Custom Padding & Margin: Use shorthand for all sides or specify custom insets.
  • Border Customization: Toggle borders with custom color, width, and style.
  • Elevation Support: Add elevation to create shadows and a raised effect.
  • Simple & Lightweight: Minimal configuration with powerful customization.

❓ Usage

1. 添加依赖

在你的 pubspec.yaml 文件中添加 easy_container 作为依赖:

dependencies:
  flutter:
    sdk: flutter

  easy_container:

2. 使用 EasyContainer 替代普通 ContainerCard

import 'package:easy_container/easy_container.dart';

EasyContainer(
  child: Text("Hello World"),
),

3. 使用手势检测器

如果需要添加点击或长按事件,可以使用 onTaponLongPress 等参数:

EasyContainer(
  child: Text("Hello World"),
  onTap: () => debugPrint("Hello World"),
),

4. 自定义 paddingmarginborderRadius

  • padding 可以直接传入一个 double 值,表示所有边的填充。
  • 如果需要自定义填充,可以使用 customPadding 参数,它接受 EdgeInsets
EasyContainer(
  child: Text("Hello World"),
  onTap: () => debugPrint("Hello World"),
  
  // Shorthand for EdgeInsets.all(20)
  padding: 20,

  // if customPadding passed, padding is ignored.
  // Hence padding applied to container is 10 from all sides.
  customPadding: EdgeInsets.all(10),
),

5. 设置对齐方式

默认情况下,alignment 是居中的。可以通过设置 alignmentnull 或指定高度和宽度来改变这一行为:

EasyContainer(
  child: Text("Hello World"),
  onTap: () => debugPrint("Hello World"),

  // child not longer takes all the available space
  alignment: null,
),

6. 启用边框

要启用边框,需要将 showBorder 设置为 true,默认值为 false。如果启用了边框,还可以设置 borderColorborderWidthborderStyle

EasyContainer(
  child: Text("Hello World"),
  onTap: () => debugPrint("Hello World"),
  showBorder: true,
  borderWidth: 5,
  borderColor: Colors.red,
),

🎯 Sample Usage

下面是一个完整的示例代码,展示了如何使用 EasyContainer 创建一个带有点击事件、阴影和圆角的容器:

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

void main() => runApp(_MainApp());

class _MainApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: SafeArea(
        child: Scaffold(
          body: Center(
            child: EasyContainer(
              height: 300,
              width: 300,
              padding: 20,
              elevation: 10,
              onTap: () => debugPrint("Container Tapped"),
              margin: 20,
              borderRadius: 20,
              color: Colors.red,
              child: const CircularProgressIndicator.adaptive(),
            ),
          ),
        ),
      ),
    );
  }
}

这个示例创建了一个红色的容器,大小为 300x300,带有 20 的内边距和外边距,圆角半径为 20,并且有 10 的阴影效果。点击容器时会打印 “Container Tapped”。

希望这些信息能帮助你更好地理解和使用 easy_container 插件!如果有任何问题,欢迎随时提问。


更多关于Flutter容器简化插件easy_container的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter容器简化插件easy_container的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,easy_container 是一个用于简化 Flutter 中容器(如 ContainerPaddingMarginDecoratedBox 等)使用的插件。它可以帮助开发者以更简洁的代码实现复杂的布局。以下是一个使用 easy_container 的代码示例,展示了如何简化常见的容器操作。

首先,确保你已经在 pubspec.yaml 文件中添加了 easy_container 依赖:

dependencies:
  flutter:
    sdk: flutter
  easy_container: ^latest_version  # 请替换为最新版本号

然后,运行 flutter pub get 来获取依赖。

接下来是一个完整的 Flutter 应用示例,展示如何使用 easy_container

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Easy Container Example'),
        ),
        body: Center(
          child: EasyColumn(
            crossAxisAlignment: CrossAxisAlignment.center,
            children: [
              // 使用 EasyContainer 简化 Container 的使用
              EasyContainer(
                decoration: BoxDecoration(
                  color: Colors.blue,
                  borderRadius: BorderRadius.circular(10),
                ),
                padding: EdgeInsets.all(16),
                margin: EdgeInsets.only(bottom: 16),
                child: Text(
                  'Hello, Easy Container!',
                  style: TextStyle(color: Colors.white),
                ),
              ),

              // 使用 EasyPadding 和 EasyMargin 简化 Padding 和 Margin 的使用
              EasyPadding(
                padding: EdgeInsets.all(8),
                child: EasyContainer(
                  decoration: BoxDecoration(
                    color: Colors.green,
                    borderRadius: BorderRadius.circular(10),
                  ),
                  child: Text(
                    'Padded Container',
                    style: TextStyle(color: Colors.white),
                  ),
                ),
              ),

              EasyMargin(
                margin: EdgeInsets.only(top: 16, bottom: 16),
                child: EasyContainer(
                  decoration: BoxDecoration(
                    color: Colors.red,
                    borderRadius: BorderRadius.circular(10),
                  ),
                  child: Text(
                    'Margined Container',
                    style: TextStyle(color: Colors.white),
                  ),
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

在这个示例中,我们使用了 EasyContainer 来替代传统的 Container,并添加了装饰(decoration)、内边距(padding)和外边距(margin)。同时,我们还展示了如何使用 EasyPaddingEasyMargin 来简化 PaddingMargin 的使用。

  • EasyContainer 允许你在一个组件中快速设置装饰、内边距和外边距等属性,使代码更加简洁。
  • EasyPaddingEasyMargin 分别简化了 PaddingMargin 的使用,使得布局代码更加直观。

通过这些简化,你可以更快速地构建复杂的 UI 布局,同时保持代码的可读性和可维护性。

回到顶部