【发布时间】:2021-10-23 05:12:18
【问题描述】:
我一直在尝试将 WidgetSpan 添加到 TextField(通过 TextEditingController 中的 buildTextSpan())并遇到崩溃:“断言失败:[..]:'dimensions != null': is not true”。 在尝试找到解决方案时,我只遇到过有类似问题的人,但无法找到解决方案。 我的代码(和问题)类似于在问题 https://github.com/flutter/flutter/issues/30688#issuecomment-870034058 上发布的评论。
@override
TextSpan buildTextSpan({required BuildContext context, TextStyle? style, required bool withComposing}) {
final atIndex = text.indexOf('@');
var spans = <InlineSpan>[];
if (atIndex != -1) {
spans.add(TextSpan(text: text.substring(0, atIndex)));
spans.add(
WidgetSpan(
alignment: PlaceholderAlignment.middle,
child: Card(
child: Padding(
padding: const EdgeInsets.all(4.0),
child: Text('@'),
),
),
),
);
spans.add(TextSpan(text: text.substring(1 + atIndex)));
} else {
spans.add(TextSpan(text: text));
}
return TextSpan(
children: spans,
);
}
对于这个失败的断言是否有任何修复/解决方法?
【问题讨论】:
-
我也看到了这个问题,但类似于该问题的最后两个 cmets,我不知道如何从 TextEditingController 设置 PlaceholderDimensions
标签: flutter dart widget textfield