Flutter 电商商品名称 标签和文字混排效果实现

一、在商品列表布局中经常会在标题前增加一个标签,如下样式:

封装了一个类代码如下:

import 'package:amway_superapp_ecommerce/res/colors.dart';
import 'package:amway_superapp_ecommerce/util/ec_screen_util.dart';
import 'package:flutter/material.dart';

/*
 * @author 小强
 *
 * @time 2022/4/13  19:22
 *
 * @desc 标签加标题
 *
 */

class LabelTitleWidget extends StatelessWidget {
  ///标签文字
  final String labelText;

  ///标签样式
  final TextStyle labelTextStyle;

  ///标题文字
  final String titleText;

  ///标题样式
  final TextStyle titleTextStyle;

  ///最大行数
  final int maxLines;

  ///间距宽度
  final num widthMargin;

  LabelTitleWidget(
      {this.labelText, this.labelTextStyle, this.titleText, this.titleTextStyle, this.maxLines, this.widthMargin});

  @override
  Widget build(BuildContext context) {
    return Container(
      child: RichText(
        maxLines: maxLines ?? 2,
        overflow: TextOverflow.ellipsis,
        text: TextSpan(
          children: [
            //标签
            WidgetSpan(
                child: Container(
              padding: EdgeInsets.symmetric(horizontal: 5.w),
              child: Text(labelText ?? "专题", style: labelTextStyle ?? TextStyle(fontSize: 12.sp, color: Colors.white)),
              decoration: BoxDecoration(color: ColorsRes.color_f59356, borderRadius: BorderRadius.circular(3.w)),
            )),

            //间距
            WidgetSpan(child: SizedBox(width: widthMargin??4.w)),

            //标题
            TextSpan(
              text: titleText ?? "",
              style: titleTextStyle ?? TextStyle(fontSize: 12, color: Colors.black),
            ),
          ],
        ),
      ),
    );
  }
}

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值