我正在尝试在Flutter中创建以下图片。如您所见,我需要一个链接和一个图像图标。但是,我在控制台中收到“范围”错误。
这是我的代码段
Widget build(BuildContext context) {
return Row(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Image.asset(
"assets/images/checkbox-check.png",
),
Expanded(
child: Container(
child: Wrap(
children: [
RichText(
text: new TextSpan(
children: [
TextSpan(
text: 'Email opportunities. ',
style: TextStyle(
color: Palette.DARK_BLUE, fontSize: 16.0),
),
TextSpan(
text: 'privacy policy',
style: TextStyle(
color: Palette.DARK_BLUE,
decoration: TextDecoration.underline),
recognizer: TapGestureRecognizer()
..onTap = () {
launch();
},
),
TextSpan(
text: ' and ',
),
TextSpan(
text: 'terms of use',
style: TextStyle(
decoration: TextDecoration.underline),
recognizer: TapGestureRecognizer()
..onTap = () {
launch();
},
),
WidgetSpan(
child: Icon(
Icons.info_outline,
color: Colors.red,
),
)
],
),
),
],
),
),
)
],
);
} }
是否还有另一种方法来创建我的UI?我没有出现错误屏幕,但在控制台中看到了错误。我在小部件树中有一个包装,但是我认为不需要它。但永远不会少,如果我将其删除,则会出现相同的问题。
答案 0 :(得分:0)
当您将 TextSpan 与识别器与 WidgetSpan 一起使用时,这是一个 Flutter 问题:https://github.com/Azure/azure-storage-azcopy/issues/1315
解决方法是将 RichText
包装在 ExcludeSemantics
中:
ExcludeSemantics(
excluding: true,
child: RichText( ... ),
),