Flutter高仿微信-第10篇-个人信息-二维码名片

 Flutter高仿微信系列共59篇,从Flutter客户端、Kotlin客户端、Web服务器、数据库表结构、Xmpp即时通讯服务器、视频通话服务器、腾讯云服务器全面讲解。

详情请查看

效果图:

实现代码:

/**
 * Author : wangning
 * Email : maoning20080809@163.com
 * Date : 2022/10/21 10:33
 * Description : 生成个人二维码
 */

class PersonalQrCodeWidget extends StatefulWidget{

  @override
  State<StatefulWidget> createState() => _PersonalQrCodeWidget();

}

class _PersonalQrCodeWidget extends State<PersonalQrCodeWidget>{

  String account = SpUtils.getString(CommonUtils.LOGIN_ACCOUNT);
  UserBean? _userBean;
  String? qrCode;
  @override
  void initState() {
    super.initState();
    initUser();
  }

  void initUser() async {
    _userBean = await UserRepository.getInstance().findUserByAccount(account);

    setState(() {
      String nickName = _userBean?.nickName??"";
      String avatar = _userBean?.avatar??"";
      qrCode = CommonUtils.QR_ADD_FRIEND + account+CommonUtils.CHAT_MESSAGE_SPILE+nickName+CommonUtils.CHAT_MESSAGE_SPILE+avatar;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: WnAppBar.getAppBar(context, const Text("二维码名片")),

      backgroundColor: Colors.grey.shade200,
      body: Center(
        child: Container(
          margin: EdgeInsets.all(20),
          width: AppManager.getInstance().getWidth(context),
          height: AppManager.getInstance().getWidth(context),
          decoration: BoxDecoration(
            color: Colors.white,
            borderRadius: BorderRadius.circular(10),
          ),
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            crossAxisAlignment: CrossAxisAlignment.center,
            children: [
              getUserInfoWidget(),
              getQrWidget(),

              Container(
                margin: EdgeInsets.only(top: 20),
                child: Text("扫一扫上面的二维码图案,加我好友", style: TextStyle(color: Colors.grey.shade400),),
              )

            ],
          ),
        ),
      ),
    );
  }

  //账号信息
  Widget getUserInfoWidget(){
    return Row(
      children: [
        Container(
          margin: EdgeInsets.only(left: 30, right: 10, bottom: 12),
          child: CommonAvatarView.showBaseImage(_userBean?.avatar??""),
        ),

        Text("${_userBean?.nickName}"),
      ],
    );
  }

  //获取二维码图片
  Widget getQrWidget(){
    return QrImage(
      data: '${qrCode}',
      version: QrVersions.auto,
      size: 280,
      gapless: false,
      embeddedImage: CommonAvatarView.showQrImage(_userBean?.avatar??""),
      embeddedImageStyle: QrEmbeddedImageStyle(
        size: Size(50, 50),
      ),
    );
  }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

六毛六66

你的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值