Flutter自定义扩展文本插件expanded_text_custom的使用

Flutter自定义扩展文本插件expanded_text_custom的使用

一个自定义的Flutter小部件,用于显示可展开的文本,并带有“更多/更少”切换功能,可定制的图标和阴影效果。

功能

  • 可展开的文本,并具有可定制的“更多/更少”功能。
  • 可选标题位于文本内容上方。
  • 可定制外观,包括文本样式、颜色、图标和阴影效果。
  • 支持动画化的文本大小变化和流畅过渡。
  • 可选的自定义图标用于展开/折叠功能。

安装

在你的 pubspec.yaml 文件中添加以下行:

dependencies:
  expanded_text_custom:
    git: https://github.com/your-github-repo/expanded_text_custom.git

使用

首先,在你的Flutter项目中导入库:

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

接下来,创建一个简单的示例应用来展示如何使用这个插件:

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text("展开文本自定义示例")),
        body: Center(
          child: Padding(
            padding: const EdgeInsets.all(16.0),
            child: ExpandableTextCustom(
              title: "展开文本示例",
              content: 
              "这是一个展开文本的示例。通过点击'更多'可以查看完整内容。此功能适用于需要紧凑视图但又想展示长文本的情况。",
              maxLines: 3,
              showMore: true,
              textMore: "更多",
              textLess: "更少",
            ),
          ),
        ),
      ),
    );
  }
}

关键属性

  • title: 可选标题,用于展开文本。
  • content: 主要内容(必填)。
  • maxLines: 显示前截断的最大行数,默认为3。
  • showMore: 是否显示“更多/更少”切换,默认为 false
  • showIcon: 是否在“更多/更少”文字旁边显示图标,默认为 true
  • textExpandStyle: “更多/更少”文字的样式。
  • titleColor: 标题文本的颜色。
  • textStyleTitle: 标题的自定义文本样式。
  • textStyleContent: 主要内容的自定义文本样式。
  • shaderMask: 是否应用阴影遮罩效果以截断文本,默认为 false
  • iconColor: 展开/折叠图标的颜色过滤器。
  • textMore: 自定义“更多”文本。
  • textLess: 自定义“更少”文本。
  • assetsIconLess: 折叠图标的SVG资源路径。
  • assetsIconMore: 展开图标的SVG资源路径。

额外说明

  • 此小部件使用 AnimatedSize 实现展开/折叠文本时的平滑过渡。
  • 使用 ShaderMask 创建被截断文本底部的渐变效果。
  • 如果你使用自定义的“更多/更少”图标,请确保提供有效的SVG资源路径。
  • 你可以通过调整各种属性来自定义该小部件以满足特定需求。

对于更多信息或支持,请访问[仓库链接]并提出问题或贡献代码。


### 示例代码

#### `example/lib/main.dart`

```dart
import 'package:expanded_text_custom/expanded_text_custom.dart';
import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  // 这个小部件是你的应用程序的根。
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  const MyHomePage({super.key});

  [@override](/user/override)
  Widget build(BuildContext context) {
    return const Scaffold(
      body: SafeArea(
        child: ExpandableTextCustom(
          showMore: true,
          textMore: "更多",
          textLess: "更少",
          content: 
          '假设你想在一个应用中使用some_package和another_package,并且这两个包依赖于url_launcher,但版本不同。这可能会导致潜在冲突。最好的方法是包作者在指定依赖项时使用版本范围而不是特定版本。',
        ),
      ),
    );
  }
}

更多关于Flutter自定义扩展文本插件expanded_text_custom的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter自定义扩展文本插件expanded_text_custom的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


expanded_text_custom 是一个 Flutter 插件,用于在文本内容超出指定行数时,提供一个“展开/收起”按钮,以便用户可以查看完整的文本内容。这个插件是 expanded_text 插件的一个自定义版本,允许开发者根据需要进行更多的定制。

安装

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

dependencies:
  expanded_text_custom: ^1.0.0  # 请使用最新版本

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

基本使用

以下是一个简单的使用示例:

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Expanded Text Custom Example'),
        ),
        body: Center(
          child: ExpandedTextCustom(
            text: '这是一个很长的文本,当文本内容超出指定行数时,会显示一个“展开/收起”按钮。',
            maxLines: 2,
            expandedColor: Colors.blue,
            collapsedColor: Colors.red,
          ),
        ),
      ),
    );
  }
}

参数说明

ExpandedTextCustom 提供了多个参数,允许你自定义文本的显示效果:

  • text: 要显示的文本内容。
  • maxLines: 文本显示的最大行数,超出这个行数时才会显示“展开/收起”按钮。
  • expandedColor: 文本展开时按钮的颜色。
  • collapsedColor: 文本收起时按钮的颜色。
  • expandedText: 展开按钮的文本,默认为 '展开'
  • collapsedText: 收起按钮的文本,默认为 '收起'
  • textStyle: 文本的样式。
  • textAlign: 文本的对齐方式。
  • textDirection: 文本的方向。
  • locale: 文本的本地化设置。
  • softWrap: 是否自动换行。
  • overflow: 文本溢出时的处理方式。
  • textScaleFactor: 文本的缩放比例。
  • semanticsLabel: 语义标签。

自定义按钮

你还可以通过 expandedWidgetcollapsedWidget 参数来自定义展开和收起的按钮:

ExpandedTextCustom(
  text: '这是一个很长的文本,当文本内容超出指定行数时,会显示一个“展开/收起”按钮。',
  maxLines: 2,
  expandedWidget: Text('查看更多', style: TextStyle(color: Colors.green)),
  collapsedWidget: Text('收起', style: TextStyle(color: Colors.red)),
)
回到顶部