import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:get/get_core/src/get_main.dart'; import 'package:location/utils/common_expand.dart'; import '../../../base/base_view.dart'; import '../../../resource/assets.gen.dart'; import '../../../resource/colors.gen.dart'; import '../../../resource/string.gen.dart'; import 'add_friend_dialog_controller.dart'; class AddFriendView extends BaseView { const AddFriendView({super.key}); static void show() { Get.bottomSheet(AddFriendView(), isScrollControlled: true, barrierColor: ColorName.black55, backgroundColor: ColorName.transparent); } static void dismiss() { Get.back(); } @override Widget buildBody(BuildContext context) { return _addFriendView(); } @override backgroundColor() { return ColorName.transparent; } Widget _addFriendView() { return IntrinsicHeight( child: Container( decoration: BoxDecoration( color: '#FDFCFE'.color, borderRadius: BorderRadius.only( topLeft: Radius.circular(16.w), topRight: Radius.circular(16.w), ), ), child: Stack( children: [ // Positioned.fill( // child: Assets.images.bgAddFriendDialog.image(width: 1.sw), // ), _buildClose(), Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ SizedBox(height: 19.h), _buildAddHeader(), SizedBox(height: 18.h), _buildPhone(), SizedBox(height: 16.h), _buildShareWx(), SizedBox(height: 20.h), Center(child: Obx(() { return Text(controller.title.value, style: TextStyle(fontSize: 12.sp, color: '#A7A7A7'.color)); })), SizedBox(height: 30.h), ], ) ], ), ), ); } Container _buildShareWx() { return Container( height: 54.w, decoration: BoxDecoration(boxShadow: [ BoxShadow( color: ColorName.black5.withOpacity(0.05), // 阴影颜色 blurRadius: 23, // 阴影模糊半径 spreadRadius: 2, // 阴影扩展半径 offset: const Offset(0, 0), // 阴影位置,向上偏移 ), ], color: ColorName.white, borderRadius: BorderRadius.circular(12.w)), margin: EdgeInsets.symmetric(horizontal: 12.w), child: Row( children: [ SizedBox(width: 15.w), Assets.images.iconLoginWx.image(width: 25.w), SizedBox(width: 15.w), Text(StringName.friendAddFromWx, style: TextStyle( fontWeight: FontWeight.bold, color: ColorName.primaryTextColor, fontSize: 14.sp)), Spacer(), Assets.images.iconLoginGoWxArrow.image(width: 18.w, height: 18.w), SizedBox(width: 12.w), ], ), ); } Container _buildPhone() { return Container( padding: EdgeInsets.symmetric(horizontal: 12.w), margin: EdgeInsets.symmetric(horizontal: 12.w), decoration: BoxDecoration(boxShadow: [ BoxShadow( color: ColorName.black5.withOpacity(0.05), // 阴影颜色 blurRadius: 23, // 阴影模糊半径 spreadRadius: 2, // 阴影扩展半径 offset: const Offset(0, 0), // 阴影位置,向上偏移 ), ], color: ColorName.white, borderRadius: BorderRadius.circular(12.w)), child: Column( children: [ SizedBox(height: 13.h), Row( crossAxisAlignment: CrossAxisAlignment.center, children: [ Assets.images.iconLoginPhone.image(width: 18.w, height: 18.w), SizedBox(width: 7.w), Text( StringName.friendAddPhoneEtHint, style: TextStyle( fontWeight: FontWeight.bold, fontSize: 14.sp, color: ColorName.primaryTextColor, ), ) ], ), SizedBox(height: 18.h), _buildPhoneView(), SizedBox(height: 18.h), ], ), ); } Widget _buildPhoneView() { return Row( children: [ Expanded( child: Container( height: 50.w, decoration: BoxDecoration( color: '#F9F9F9'.color, borderRadius: BorderRadius.circular(10.w), ), padding: EdgeInsets.symmetric(horizontal: 10.w), child: Center( child: TextField( style: TextStyle( fontSize: 14.sp, color: ColorName.primaryTextColor), maxLines: 1, maxLength: 11, keyboardType: TextInputType.phone, textAlignVertical: TextAlignVertical.center, textInputAction: TextInputAction.next, decoration: InputDecoration( hintText: StringName.friendAddPhoneEtHint, counterText: '', hintStyle: TextStyle(fontSize: 16, color: "#AFAFAF".toColor()), labelStyle: const TextStyle( fontSize: 16, color: ColorName.primaryTextColor, ), contentPadding: const EdgeInsets.all(0), border: const OutlineInputBorder(borderSide: BorderSide.none), enabled: true, ), ), ), ), ), SizedBox(width: 14.w), Assets.images.iconLoginAddressBook.image(width: 15.w, height: 15.w), SizedBox(width: 3.w), Text(StringName.friendAddAddressBook, style: TextStyle(fontSize: 14.sp, color: '#202020'.color)), ], ); } Widget _buildAddHeader() { return Padding( padding: EdgeInsets.only(left: 18.w), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text(StringName.friendAddTitle, style: TextStyle( fontSize: 20.sp, color: ColorName.primaryTextColor, fontWeight: FontWeight.bold)), SizedBox(height: 10.h), Text(StringName.friendAddDesc, style: TextStyle(fontSize: 14.sp, color: '#545454'.color)), ], ), ); } Widget _buildClose() { return Padding( padding: EdgeInsets.all(12.w), child: GestureDetector( onTap: () { Get.back(); }, child: Align( alignment: Alignment.topRight, child: Assets.images.iconLoginClose.image(width: 24.w, height: 24.w)), ), ); } }