flutter_scatter

一个显示分散且不重叠子项集合的 Widget。

可用于创建词云
Word Cloud

特点

  • 内置的代理(螺旋、对齐、椭圆)。
  • 允许您指定子元素的对齐方式。

入门

在您的 flutter 项目的 pubspec.yaml 文件中,添加以下依赖项
最新版本为 Pub

dependencies:
  ...
  flutter_scatter: ^latest_version

在您的库中添加以下导入

import 'package:flutter_scatter/flutter_scatter.dart';

要开始使用 Flutter,请查看在线 文档

小部件

您可以通过提供一个代理和一个部件列表来简单地创建一个Scatter

代理负责计算位置。
例如,如果您想在圆上定位您的部件,您将使用EllipseScatterDelegate

return Center(
    child: Scatter(
    delegate: EllipseScatterDelegate(
        a: 185.0,
        b: 185.0,
        step: 1.0 / count,
    ),
    children: widgets,
    ),
);

Ellipse

选择子元素如何与计算出的位置对齐可能很有用。默认情况下,部件的中心将放置在代理生成的位置上。
如果要左对齐,您将把Scatteralignment参数更改为Alignment.topLeft

默认情况下,Scatter不会尝试填充间隙(出于性能原因)。您可以通过将fillGaps参数设置为true来覆盖此行为。

例如,如果将fillGaps参数设置为false,上面的词云会看起来像这样。
fillGaps to false

代理

Scatter具有可以高度参数化的内置代理。

螺旋

  • ArchimedeanSpiralScatterDelegate
  • FermatSpiralScatterDelegate
  • LogarithmicSpiralScatterDelegate

Spirals

对齐

  • AlignScatterDelegate

Alignments

椭圆

  • EllipseScatterDelegate

Ellipses

GitHub

https://github.com/letsar/flutter_scatter