Flutter 颤振:垂直文本小部件
我在这里查找了pub.dev和flatter文档,但找不到(或者说找不到我的查询)这个简单任务的任何解决方案 我想显示一个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 此外,我还需要将字符串包装到下一行(本例中为列),需要一个高度参数来限制每列从上到下的字母数 如果最后一部分太难实现,我愿意接受单列解决方案的想法。屏幕截图: //
字符串
,其字母从上到下排列,同时保持字母方向的默认值。因此,旋转的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
类。如果你不知道如何转换,让我知道我会更新帖子。很棒的提示。简单的豌豆。我会这样做:)