首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在RichText中使用if

如何在RichText中使用if
EN

Stack Overflow用户
提问于 2020-10-26 05:19:37
回答 1查看 37关注 0票数 0

我试图在RichText中显示旧的和新的价格。

代码语言:javascript
复制
if(regularPrice >= discountPrice){
    TextSpan(
            text: ' $regularPrice',
            style: TextStyle(
                decoration: TextDecoration.lineThrough,
                decorationThickness: 2.85,
            fontSize: 15,
            ontWeight: FontWeight.bold),
        ),
    TextSpan(
            text: ' $discountPrice',
            style: TextStyle(
            fontSize: 15,
            ontWeight: FontWeight.bold),
        ),
}else{
    TextSpan(
            text: ' $regularPrice',
            style: TextStyle(
            fontSize: 15,
            ontWeight: FontWeight.bold),
        ),
}

我可以在RichText中使用这个逻辑吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-26 05:53:30

您可以使用spread operator

代码语言:javascript
复制
class RichTextDiscountedPrice extends StatelessWidget {
  static const regularPrice = 100;
  static const discountedPriced = 95;

  @override
  Widget build(BuildContext context) {
    final regularPriceTextSpan = TextSpan(text: ' $discountedPriced', style: TextStyle(fontWeight: FontWeight.bold));

    final discountedTextSpanList = [
      TextSpan(text: '$regularPrice', style: TextStyle(decoration: TextDecoration.lineThrough)),
      regularPriceTextSpan
    ];

    return Center(
      child: RichText(
        text: TextSpan(
          text: "Price ",
          style: DefaultTextStyle.of(context).style,
          children: <TextSpan>[
            if (regularPrice > discountedPriced) ...discountedTextSpanList else ...<TextSpan>[regularPriceTextSpan],
          ],
        ),
      ),
    );
  }
}

注意:我稍微编辑了一下样式,以减少示例中的行数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64528909

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档