flutter TextSpan的文字不能设置上下居中

在这里插入图片描述

TextSpan的文字不能设置上下居中,但是里面的图标和文字都是居中的,那就让固定文字大小和高度是文字大小14,高度14,以文字高度为标准,控制其他图标的高度即可。文字高度就是19.6,文字会居中了,然后就让左边两个图标都是18高度,设置列,让图标居中

   groupMessageItem = Row(
          crossAxisAlignment: CrossAxisAlignment.center,
          children: [
            Container(
              padding:
                  const EdgeInsets.only(left: 10, right: 10, top: 0, bottom: 0),
              margin: const EdgeInsets.only(bottom: 5),
              decoration: BoxDecoration(
                  color: const Color(0x1A000000),
                  borderRadius: BorderRadius.circular(10)),
              child: Row(
                mainAxisSize: MainAxisSize.min,
                crossAxisAlignment: CrossAxisAlignment.center,
                children: [
                  ConstrainedBox(
                    constraints:
                        BoxConstraints(maxWidth: Global.screenWidth * 0.6),
                    child: Text.rich(TextSpan(children: [
                      WidgetSpan(
                          child: canShowRoleImage(groupMessage
                                      .directTextMessageModel?.userInfo?.role ??
                                  0)
                              ? roleImage(groupMessage
                                      .directTextMessageModel?.userInfo?.role ??
                                  0)
                              : const Text(
                                  '',
                                  style: TextStyle(height: 1),
                                )),
                      WidgetSpan(
                        child: showWealthLevel()
                            ? Container(
                                height: 18,
                                child: Column(
                                  mainAxisAlignment: MainAxisAlignment.center,
                                  mainAxisSize: MainAxisSize.max,
                                  children: [
                                    Container(
                                      padding: const EdgeInsets.only(
                                          left: 5, right: 5, top: 1, bottom: 1),
                                      margin: const EdgeInsets.only(right: 5),
                                      decoration: BoxDecoration(
                                          color: const Color(0x66FCE08B),
                                          borderRadius:
                                              BorderRadius.circular(50)),
                                      child: Row(
                                        mainAxisSize: MainAxisSize.min,
                                        crossAxisAlignment:
                                            CrossAxisAlignment.center,
                                        mainAxisAlignment:
                                            MainAxisAlignment.center,
                                        children: [
                                          const Image(
                                              image: AssetImage(
                                                  'assets/images/icon_direct_seeding_medal.png'),
                                              gaplessPlayback: true,
                                              height: 13),
                                          Container(
                                            margin:
                                                const EdgeInsets.only(left: 3),
                                            child: Text(
                                              "${groupMessage.directTextMessageModel?.userInfo?.userExpandInfo?.wealth_level}",
                                              style: const TextStyle(
                                                  color: Colors.white,
                                                  fontSize: 12,
                                                  height: 1.08),
                                            ),
                                          )
                                        ],
                                      ),
                                    ),
                                  ],
                                ),
                              )
                            : const Text(
                                '',
                                style: TextStyle(height: 1.4),
                              ),
                      ),
                      TextSpan(
                          text: groupMessage
                                  .directTextMessageModel?.userInfo?.nickName ??
                              '',
                          style: const TextStyle(
                              color: Color(0xFF80EFFF),
                              fontSize: 14,
                              height: 1.4
                          ),
                          recognizer: TapGestureRecognizer()
                            ..onTap = () {
    
    
                              DirectUserDetailModel userInfo = DirectUserDetailModel(
                                  userId: int.parse(groupMessage
                                          .directTextMessageModel
                                          ?.userInfo
                                          ?.userID ??
                                      '0'),
                                  avatar: groupMessage.directTextMessageModel
                                          ?.userInfo?.avatarThumb ??
                                      '',
                                  nickName: groupMessage.directTextMessageModel
                                          ?.userInfo?.nickName ??
                                      '',
                                  sex: groupMessage.directTextMessageModel
                                          ?.userInfo?.sex ??
                                      1,
                                  age: groupMessage.directTextMessageModel
                                          ?.userInfo?.birthday ??
                                      0);
                              //2点开的是普通观众
                              showDirectUserDetailDialog(context, 2,
                                  directUserDetailModel: userInfo,
                                  roomCode: roomId,
                                  anchorInfo: anchorInfo,
                                  userRole: userRole);
                            }),
                      const TextSpan(text: ' ', style: TextStyle(height: 1.4)),
                      TextSpan(
                          text: groupMessage
                                  .directTextMessageModel?.textContent ??
                              '',
                          style: const TextStyle(
                              color: Colors.white, fontSize: 14, height: 1.4))
                    ])),
                  ),
                ],
              ),
            ),
          ],
        );

猜你喜欢

转载自blog.csdn.net/weixin_44911775/article/details/130127445