Flutter 颤振:垂直文本小部件

Flutter 颤振:垂直文本小部件,flutter,dart,flutter-layout,Flutter,Dart,Flutter Layout,我在这里查找了pub.dev和flatter文档,但找不到(或者说找不到我的查询)这个简单任务的任何解决方案 我想显示一个字符串,其字母从上到下排列,同时保持字母方向的默认值。因此,旋转的Text()将不起作用 我期望的结果是: H E L T L H O A N W K O S R ❤️ L D 此外,我还需要将字符串包装到下一行(本例中为列),需要一个高度参数来限制每列从上到下的字母数 如果最后一部分太难实现,我愿意接受单列解决方案的想法。屏幕截图: //

我在这里查找了pub.dev和flatter文档,但找不到(或者说找不到我的查询)这个简单任务的任何解决方案

我想显示一个
字符串
,其字母从上到下排列,同时保持字母方向的默认值。因此,旋转的
Text()
将不起作用

我期望的结果是:

H
E
L   T
L   H
O   A
    N
W   K
O   S
R   ❤️
L
D
此外,我还需要将
字符串
包装到下一行(本例中为列),需要一个高度参数来限制每列从上到下的字母数


如果最后一部分太难实现,我愿意接受单列解决方案的想法。

屏幕截图:

// Create a custom widget like this
class MyVerticalText extends StatelessWidget {
  final String text;

  const MyVerticalText(this.text);

  @override
  Widget build(BuildContext context) {
    return Wrap(
      runSpacing: 30,
      direction: Axis.vertical,
      alignment: WrapAlignment.center,
      children: text.split("").map((string) => Text(string, style: TextStyle(fontSize: 22))).toList(),
    );
  }
}


代码:

// Create a custom widget like this
class MyVerticalText extends StatelessWidget {
  final String text;

  const MyVerticalText(this.text);

  @override
  Widget build(BuildContext context) {
    return Wrap(
      runSpacing: 30,
      direction: Axis.vertical,
      alignment: WrapAlignment.center,
      children: text.split("").map((string) => Text(string, style: TextStyle(fontSize: 22))).toList(),
    );
  }
}
然后像这样使用它:

MyVerticalText("HELLO WORLD THANKS❤️")

哇!看起来很棒,而且代码很少。我会尽快试一试。在尝试代码之前,有一个简单的问题:你认为每个字母变成
文本
小部件会导致性能问题吗?这取决于字符串的长度,如果您要传递10-20个字母,则
Wrap
可以,但如果您要传递100多个字母,我建议您使用
ListView
而不是
Wrap
,但这可能不适合您的UI,因为它会产生滚动效果,这完全取决于您的用例。实际上,我将在
列表视图
元素中使用这些垂直文本。因此,每个
ListView
项最多有2个单词。同时我们在屏幕上最多有10个项目。那应该不会有任何问题。您可以这样做,但有一个性能提示,不要使用该方法,而是将其转换为
无状态widget
类。如果你不知道如何转换,让我知道我会更新帖子。很棒的提示。简单的豌豆。我会这样做:)