998 lines
35 KiB
Dart
998 lines
35 KiB
Dart
|
|
import 'package:cached_network_image/cached_network_image.dart';
|
|
import 'package:circle_app/app/userinfo/widgets/home_call_out.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
|
import 'package:get/get.dart';
|
|
|
|
import '../../components/my_app_bar.dart';
|
|
import '../../router/app_routers.dart';
|
|
import '../../util/util.dart';
|
|
import 'logic.dart';
|
|
|
|
class UserinfoPage extends StatefulWidget {
|
|
const UserinfoPage({super.key});
|
|
|
|
@override
|
|
_MyTabbedScreenState createState() => _MyTabbedScreenState();
|
|
}
|
|
|
|
class _MyTabbedScreenState extends State<UserinfoPage>
|
|
with SingleTickerProviderStateMixin {
|
|
late TabController _tabController;
|
|
|
|
ScrollController scrollController = ScrollController();
|
|
bool isShowBlackTitle = false;
|
|
|
|
@override
|
|
void initState() {
|
|
super.initState();
|
|
_tabController = TabController(
|
|
length: 2, vsync: this, animationDuration: const Duration(milliseconds: 200));
|
|
_tabController.animation!.addListener(_handleTabChange);
|
|
// _tabController.addListener(_handleTabChange);
|
|
// _tabController
|
|
}
|
|
|
|
void _handleTabChange() {
|
|
// 在这里可以执行滑动监听后的逻辑操作
|
|
// 比如根据当前选中的标签执行其他操作
|
|
// int currentIndex = .toString());
|
|
logic.isShowAlbum = _tabController.index == 0;
|
|
logic.update();
|
|
}
|
|
|
|
@override
|
|
void dispose() {
|
|
_tabController.dispose();
|
|
super.dispose();
|
|
}
|
|
|
|
|
|
|
|
final logic = Get.find<UserinfoLogic>();
|
|
final state = Get.find<UserinfoLogic>().state;
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return GetBuilder(builder: (UserinfoLogic logic) {
|
|
return Container(
|
|
decoration: BoxDecoration(
|
|
image: DecorationImage(
|
|
image: AssetImage(getBaseImage("home_back")),
|
|
fit: BoxFit.cover,
|
|
),
|
|
),
|
|
child: Scaffold(
|
|
backgroundColor: Colors.transparent,
|
|
appBar: MyAppBar(
|
|
centerTitle: logic.userInfoBean != null
|
|
? "${logic.userInfoBean!.nickname}的主页"
|
|
: "个人主页",
|
|
),
|
|
body: Stack(
|
|
children: [
|
|
Container(
|
|
child: buildContent(logic),
|
|
),
|
|
Positioned(
|
|
bottom: 27.sp,
|
|
width: Get.width,
|
|
child: _MeInfoButton(logic),
|
|
)
|
|
],
|
|
),
|
|
));
|
|
});
|
|
}
|
|
|
|
Widget _MeInfoButton(UserinfoLogic controller) {
|
|
if (controller.isMe) {
|
|
return Container();
|
|
} else {
|
|
return Container(
|
|
margin: EdgeInsets.only(left: 18.sp, right: 18.sp),
|
|
child: Row(
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
children: [
|
|
GestureDetector(
|
|
onTap: () {
|
|
// showToast("鼓掌");
|
|
_showBottomSheet(context);
|
|
},
|
|
child: Image(
|
|
image: AssetImage(getMineImage("icon_like")),
|
|
width: 40.sp,
|
|
height: 40.sp,
|
|
),
|
|
),
|
|
GestureDetector(
|
|
onTap: () {
|
|
logic.setLike();
|
|
},
|
|
child: Container(
|
|
width: 130.sp,
|
|
height: 34.sp,
|
|
decoration: BoxDecoration(
|
|
borderRadius: BorderRadius.circular(17.sp),
|
|
gradient: const LinearGradient(
|
|
colors: [
|
|
Color(0xFF06F9FA),
|
|
Color(0xFFDC5BFD),
|
|
],
|
|
begin: Alignment.centerLeft,
|
|
end: Alignment.centerRight,
|
|
),
|
|
),
|
|
child: Center(
|
|
child: Text(
|
|
logic.isLike ? "取消喜欢" : "喜欢",
|
|
style: TextStyle(
|
|
color: Colors.white,
|
|
fontSize: 12.sp,
|
|
),
|
|
),
|
|
),
|
|
),
|
|
),
|
|
GestureDetector(
|
|
onTap: () {
|
|
showToast("私聊");
|
|
},
|
|
child: Container(
|
|
width: 130.sp,
|
|
height: 34.sp,
|
|
decoration: BoxDecoration(
|
|
borderRadius: BorderRadius.circular(17.sp),
|
|
gradient: const LinearGradient(
|
|
colors: [
|
|
Color(0x26FFFFFF),
|
|
Color(0x26FFFFFF),
|
|
],
|
|
begin: Alignment.centerLeft,
|
|
end: Alignment.centerRight,
|
|
),
|
|
),
|
|
child: Center(
|
|
child: Text(
|
|
"私聊",
|
|
style: TextStyle(
|
|
color: Colors.white,
|
|
fontSize: 12.sp,
|
|
),
|
|
),
|
|
),
|
|
),
|
|
)
|
|
],
|
|
),
|
|
);
|
|
}
|
|
}
|
|
|
|
Widget buildContent(UserinfoLogic controller) {
|
|
return Container(
|
|
padding: EdgeInsets.symmetric(horizontal: 19.sp, vertical: 14.sp),
|
|
child: Column(
|
|
children: [
|
|
Row(
|
|
children: [
|
|
_imagelistView(controller),
|
|
Flexible(
|
|
child: buildUserContainer(controller),
|
|
),
|
|
],
|
|
),
|
|
Row(
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
children: [
|
|
Row(
|
|
children: [
|
|
Text(
|
|
controller.userInfoBean != null
|
|
? controller.userInfoBean!.nickname
|
|
: "",
|
|
style: const TextStyle(
|
|
color: Color.fromRGBO(247, 250, 250, 1.0),
|
|
fontSize: 14,
|
|
),
|
|
),
|
|
SizedBox(width: 8.sp),
|
|
_buildInfoRow(controller),
|
|
],
|
|
),
|
|
Row(
|
|
children: [
|
|
Container(
|
|
margin: EdgeInsets.only(right: 5.sp),
|
|
width: 5.sp,
|
|
height: 5.sp,
|
|
decoration: BoxDecoration(
|
|
shape: BoxShape.circle,
|
|
color: logic.isOnline
|
|
? const Color(0xFF00FFF4)
|
|
: const Color(0xFF787575),
|
|
),
|
|
),
|
|
Text(
|
|
controller.onLineCity,
|
|
style: TextStyle(
|
|
fontSize: 12,
|
|
color: logic.isOnline
|
|
? const Color(0xFF00FFF4)
|
|
: const Color(0xFF787575)),
|
|
)
|
|
],
|
|
),
|
|
],
|
|
),
|
|
SizedBox(
|
|
// margin: EdgeInsets.only(top: 18.sp, bottom: 18.sp),
|
|
height: 59.sp,
|
|
child: ListView.builder(
|
|
itemCount: controller.userInfoBean == null
|
|
? 0
|
|
: controller.userInfoBean!.interests.length,
|
|
// 替换为实际的 item 数量
|
|
scrollDirection: Axis.horizontal,
|
|
// 设置为水平方向
|
|
padding: EdgeInsets.symmetric(vertical: 18.sp),
|
|
// 替换为实际的边距值
|
|
itemBuilder: (context, index) {
|
|
return Container(
|
|
margin: EdgeInsets.only(right: 11.sp), // 替换为实际的 item 间距
|
|
child: Container(
|
|
decoration: BoxDecoration(
|
|
borderRadius: BorderRadius.circular(17.0), // 设置圆角半径
|
|
gradient: const LinearGradient(
|
|
colors: [
|
|
Color(0xFF06F9FA),
|
|
Color(0xFFDC5BFD),
|
|
],
|
|
),
|
|
color: const Color(0xFF392D53),
|
|
),
|
|
child: Container(
|
|
margin: EdgeInsets.all(0.2.sp),
|
|
decoration: BoxDecoration(
|
|
borderRadius: BorderRadius.circular(17.0),
|
|
// shape: BoxShape.circle,
|
|
color: const Color(0xFF392D53),
|
|
),
|
|
child: Padding(
|
|
padding: EdgeInsets.only(
|
|
top: 2.sp, bottom: 2.sp, left: 15.sp, right: 15.sp),
|
|
child: Center(
|
|
child: Text(
|
|
controller.userInfoBean!.interests[index].title,
|
|
style: const TextStyle(
|
|
fontSize: 11.0,
|
|
color: Colors.white,
|
|
),
|
|
),
|
|
),
|
|
),
|
|
),
|
|
), // 替换为实际的列表项小部件
|
|
);
|
|
},
|
|
),
|
|
),
|
|
titleTab(controller),
|
|
Expanded(
|
|
child: TabBarView(
|
|
controller: _tabController,
|
|
children: [
|
|
_imageAdapter(controller),
|
|
Container(
|
|
margin: EdgeInsets.only(bottom: 26.sp),
|
|
child: HomeCallOutView(controller.userId)),
|
|
],
|
|
))
|
|
],
|
|
),
|
|
);
|
|
}
|
|
|
|
Widget titleTab(UserinfoLogic controller) {
|
|
return Container(
|
|
alignment: Alignment.centerLeft,
|
|
height: 27.sp,
|
|
child: Row(
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
children: [
|
|
TabBar(
|
|
isScrollable: true,
|
|
controller: _tabController,
|
|
indicatorColor: const Color(0xFF00FFF4),
|
|
indicatorWeight: 2.sp,
|
|
labelColor: const Color(0xFF00FFF4),
|
|
unselectedLabelColor: const Color(0xB3FFFFFF),
|
|
indicatorSize: TabBarIndicatorSize.label,
|
|
tabs: const [
|
|
Tab(
|
|
text: "形象照",
|
|
),
|
|
Tab(text: "喊话")
|
|
],
|
|
),
|
|
GestureDetector(
|
|
onTap: () {
|
|
controller.isMe
|
|
? controller.isEdit = !controller.isEdit
|
|
: controller.urgeChange();
|
|
controller.update();
|
|
// controller.updataImage();
|
|
},
|
|
child: Visibility(
|
|
visible: logic.isShowAlbum,
|
|
child: Container(
|
|
decoration: BoxDecoration(
|
|
borderRadius: BorderRadius.circular(17),
|
|
gradient: const LinearGradient(
|
|
colors: [
|
|
Color(0xFF06F9FA),
|
|
Color(0xFFDC5BFD),
|
|
],
|
|
begin: Alignment.centerLeft,
|
|
end: Alignment.centerRight,
|
|
),
|
|
),
|
|
padding: EdgeInsets.only(
|
|
top: 2.sp, bottom: 2.sp, left: 12.sp, right: 12.sp),
|
|
child: Text(
|
|
controller.isMe
|
|
? controller.isEdit
|
|
? "完成"
|
|
: "管理"
|
|
: controller.isUrgeStatus
|
|
? "已催更"
|
|
: "催更",
|
|
style: const TextStyle(
|
|
color: Colors.white,
|
|
fontSize: 12,
|
|
),
|
|
),
|
|
),
|
|
),
|
|
),
|
|
],
|
|
));
|
|
}
|
|
|
|
Widget _imageAdapter(UserinfoLogic controller) {
|
|
return Stack(
|
|
children: [
|
|
Column(
|
|
// mainAxisAlignment: MainAxisAlignment.center,
|
|
children: [
|
|
controller.isMe? Container(
|
|
margin: EdgeInsets.only(top: 18.sp, bottom: 14.sp),
|
|
child:
|
|
Text(
|
|
controller.isLikeFoMsg,
|
|
style: const TextStyle(color: Colors.white30),
|
|
)):Container(),
|
|
Expanded(child: Container(
|
|
margin: const EdgeInsets.only(bottom: 58.0),
|
|
child: GridView.builder(
|
|
shrinkWrap: true,
|
|
gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(
|
|
crossAxisCount: 3, // 每行显示的项目数量
|
|
),
|
|
itemCount: controller.isMe
|
|
? controller.isEdit
|
|
? controller.state.imaglist.length + 1
|
|
: controller.state.imaglist.length
|
|
: controller.state.imaglist.length, // 项目的总数量,包括固定图片和接口获取的项目
|
|
itemBuilder: (BuildContext context, int index) {
|
|
if (controller.isMe && controller.isEdit) {
|
|
if (index == 0) {
|
|
// 第一个项目,显示固定的图片
|
|
return GestureDetector(
|
|
onTap: () {
|
|
controller.getImageFile();
|
|
},
|
|
child: Container(
|
|
margin: EdgeInsets.all(5.sp),
|
|
child: Image(
|
|
image: AssetImage(getMineImage("icon_img_add")),
|
|
),
|
|
),
|
|
);
|
|
} else {
|
|
return Container(
|
|
margin: EdgeInsets.all(5.sp),
|
|
child: Center(
|
|
child: _buildImageItem(
|
|
controller.state.imaglist[index - 1].url,
|
|
controller,
|
|
index - 1)),
|
|
);
|
|
}
|
|
} else {
|
|
return Container(
|
|
margin: EdgeInsets.all(5.sp),
|
|
child: Center(
|
|
child: _buildImageItem(
|
|
controller.state.imaglist[index].url,
|
|
controller,
|
|
index)),
|
|
);
|
|
}
|
|
},
|
|
),
|
|
))
|
|
],
|
|
),
|
|
logic.isMe
|
|
? Positioned(
|
|
left: 0,
|
|
right: 0,
|
|
bottom: 26.sp,
|
|
child: GestureDetector(
|
|
onTap: () async{
|
|
// showToast("完善资料");
|
|
var data = await Get.toNamed(AppRoutes.Complete_materialPage, arguments: "user");
|
|
logic.onInit();
|
|
// controller.onInit();
|
|
},
|
|
child: Center(
|
|
child: Container(
|
|
decoration: BoxDecoration(
|
|
borderRadius: BorderRadius.circular(17),
|
|
gradient: const LinearGradient(
|
|
colors: [
|
|
Color(0xFF06F9FA),
|
|
Color(0xFFDC5BFD),
|
|
],
|
|
begin: Alignment.centerLeft,
|
|
end: Alignment.centerRight,
|
|
),
|
|
),
|
|
padding: EdgeInsets.only(
|
|
top: 10.sp, bottom: 10.sp, left: 55.sp, right: 55.sp),
|
|
child: const Text(
|
|
"完善个人形象",
|
|
style: TextStyle(
|
|
color: Colors.white,
|
|
fontSize: 12,
|
|
),
|
|
),
|
|
),
|
|
),
|
|
))
|
|
: Container()
|
|
],
|
|
);
|
|
}
|
|
|
|
Widget _buildInfoRow(UserinfoLogic controller) {
|
|
return Row(
|
|
children: [
|
|
Container(
|
|
decoration: BoxDecoration(
|
|
borderRadius: BorderRadius.circular(17),
|
|
gradient: const LinearGradient(
|
|
colors: [
|
|
Color.fromRGBO(141, 255, 248, 1.0),
|
|
Color.fromRGBO(181, 211, 255, 1.0),
|
|
],
|
|
begin: Alignment.centerLeft,
|
|
end: Alignment.centerRight,
|
|
),
|
|
),
|
|
padding: EdgeInsets.only(
|
|
top: 2.sp, bottom: 2.sp, left: 10.sp, right: 10.sp),
|
|
child: Text(
|
|
controller.ageMsg,
|
|
style: const TextStyle(
|
|
color: Colors.black,
|
|
fontSize: 10,
|
|
),
|
|
),
|
|
),
|
|
SizedBox(width: 6.sp),
|
|
controller.isVip > 0
|
|
? Image(
|
|
image: AssetImage(getBaseImage("vip")),
|
|
width: 44.sp,
|
|
height: 18.sp,
|
|
)
|
|
: Container(),
|
|
],
|
|
);
|
|
}
|
|
|
|
Widget buildUserContainer(UserinfoLogic controller) {
|
|
return Container(
|
|
margin: EdgeInsets.symmetric(horizontal: 1.sp, vertical: 14.sp),
|
|
height: 58.sp,
|
|
decoration: BoxDecoration(
|
|
image: DecorationImage(
|
|
image: AssetImage(getMineImage("icon_user_content")),
|
|
fit: BoxFit.fill,
|
|
),
|
|
),
|
|
child: Container(
|
|
margin: EdgeInsets.only(left: 24.sp),
|
|
child: Center(
|
|
child: Text(
|
|
controller.userInfoBean != null
|
|
? controller.userInfoBean!.signature
|
|
: "",
|
|
maxLines: 2,
|
|
style: const TextStyle(color: Colors.white),
|
|
overflow: TextOverflow.ellipsis,
|
|
),
|
|
),
|
|
),
|
|
);
|
|
}
|
|
|
|
Widget _imagelistView(UserinfoLogic controller) {
|
|
return Stack(
|
|
alignment: Alignment.center,
|
|
children: [
|
|
Container(
|
|
width: 68.sp,
|
|
height: 68.sp,
|
|
decoration: const BoxDecoration(
|
|
shape: BoxShape.circle,
|
|
gradient: LinearGradient(
|
|
colors: [Color(0xFFDD3DF4), Color(0xFF30FFD9)],
|
|
begin: Alignment.topCenter,
|
|
end: Alignment.bottomCenter,
|
|
),
|
|
),
|
|
),
|
|
SizedBox(
|
|
width: 66.sp,
|
|
height: 66.sp,
|
|
child: _buildAvatar1(controller),
|
|
)
|
|
],
|
|
);
|
|
}
|
|
|
|
Widget _buildAvatar1(UserinfoLogic controller) {
|
|
if (controller.userInfoBean == null) {
|
|
return SizedBox(
|
|
width: 66.sp,
|
|
height: 66.sp,
|
|
);
|
|
} else {
|
|
return ClipOval(
|
|
child: GestureDetector(
|
|
onTap: () {
|
|
var imgList = <String>[];
|
|
imgList.add(controller.userInfoBean!.avatar);
|
|
Get.toNamed(AppRoutes.Swiper,
|
|
arguments: {'imaglist': imgList, 'index': 0});
|
|
},
|
|
child: CachedNetworkImage(
|
|
fit: BoxFit.cover,
|
|
placeholder: null,
|
|
imageUrl: controller.userInfoBean != null
|
|
? controller.userInfoBean!.avatar
|
|
: "",
|
|
width: 66.sp,
|
|
height: 66.sp,
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|
|
|
|
Widget _buildImageItem(String url, UserinfoLogic controller, int index) {
|
|
return Stack(
|
|
children: [
|
|
SizedBox(
|
|
width: double.infinity, // 设置容器宽度为屏幕宽度
|
|
height: double.infinity,
|
|
child: ClipRRect(
|
|
borderRadius: BorderRadius.circular(0.0),
|
|
child: GestureDetector(
|
|
onTap: () {
|
|
List<String> imaglist = [];
|
|
for (var element in controller.state.imaglist) {
|
|
imaglist.add(element.url);
|
|
}
|
|
Get.toNamed(AppRoutes.Swiper,
|
|
arguments: {'imaglist': imaglist, 'index': index});
|
|
},
|
|
child: Image.network(
|
|
fit: BoxFit.cover,
|
|
url,
|
|
),
|
|
),
|
|
),
|
|
),
|
|
if (controller.userId == "")
|
|
Positioned(
|
|
top: 0,
|
|
right: 0,
|
|
child: GestureDetector(
|
|
onTap: () {
|
|
// showToast("删除");
|
|
_showDelImgDialog(context, controller, index);
|
|
},
|
|
child: controller.isEdit
|
|
? Image(
|
|
image: AssetImage(getMineImage("icon_img_del")),
|
|
width: 20.sp,
|
|
height: 20.sp,
|
|
)
|
|
: Container(),
|
|
))
|
|
],
|
|
);
|
|
}
|
|
|
|
void _showBottomSheet(BuildContext context) {
|
|
showModalBottomSheet(
|
|
context: context,
|
|
backgroundColor: Colors.transparent,
|
|
builder: (BuildContext context) {
|
|
return Container(
|
|
decoration: const BoxDecoration(
|
|
borderRadius: BorderRadius.only(
|
|
topLeft: Radius.circular(16.0),
|
|
topRight: Radius.circular(16.0),
|
|
),
|
|
gradient: LinearGradient(
|
|
colors: [
|
|
Color(0xFF4A3E5D),
|
|
Color(0xFF344143),
|
|
],
|
|
begin: Alignment.centerLeft,
|
|
end: Alignment.centerRight,
|
|
),
|
|
),
|
|
height: 118.0,
|
|
width: double.infinity,
|
|
child: Container(
|
|
alignment: Alignment.center,
|
|
child: Row(
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
children: [
|
|
GestureDetector(
|
|
onTap: () {
|
|
Navigator.pop(context);
|
|
Get.toNamed(AppRoutes.ReportActivity,
|
|
arguments: {"userId": logic.userId});
|
|
},
|
|
child: Column(
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
children: [
|
|
Image(
|
|
image: AssetImage(getMineImage("icon_report")),
|
|
width: 40.sp,
|
|
height: 40.sp,
|
|
),
|
|
Container(
|
|
margin: EdgeInsets.only(top: 2.sp),
|
|
child: const Text(
|
|
"举报",
|
|
style: TextStyle(color: Colors.white),
|
|
),
|
|
)
|
|
],
|
|
),
|
|
),
|
|
SizedBox(width: 75.sp),
|
|
GestureDetector(
|
|
onTap: () {
|
|
Navigator.pop(context);
|
|
_showReportDialog(context);
|
|
},
|
|
child: Column(
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
children: [
|
|
Image(
|
|
image: AssetImage(getMineImage("icon_block")),
|
|
width: 40.sp,
|
|
height: 40.sp,
|
|
),
|
|
Container(
|
|
margin: EdgeInsets.only(top: 2.sp),
|
|
child: const Text(
|
|
"拉黑",
|
|
style: TextStyle(color: Colors.white),
|
|
),
|
|
)
|
|
],
|
|
),
|
|
),
|
|
],
|
|
),
|
|
));
|
|
},
|
|
);
|
|
}
|
|
|
|
void _showDelImgDialog(
|
|
BuildContext context, UserinfoLogic controller, int index) {
|
|
showDialog(
|
|
context: context,
|
|
builder: (BuildContext context) {
|
|
return Dialog(
|
|
backgroundColor: Colors.transparent,
|
|
child: Container(
|
|
height: 160.sp,
|
|
padding: const EdgeInsets.all(1.0),
|
|
child: Stack(
|
|
children: [
|
|
Container(
|
|
decoration: BoxDecoration(
|
|
shape: BoxShape.rectangle,
|
|
borderRadius: BorderRadius.circular(10.0),
|
|
gradient: const LinearGradient(
|
|
colors: [Color(0xFFDD3DF4), Color(0xFF30FFD9)],
|
|
begin: Alignment.topCenter,
|
|
end: Alignment.bottomCenter,
|
|
),
|
|
),
|
|
),
|
|
Container(
|
|
margin: EdgeInsets.all(1.sp),
|
|
decoration: BoxDecoration(
|
|
shape: BoxShape.rectangle,
|
|
borderRadius: BorderRadius.circular(10.0),
|
|
gradient: const LinearGradient(
|
|
colors: [Color(0xFF4C3E5F), Color(0xFF324140)],
|
|
begin: Alignment.topCenter,
|
|
end: Alignment.bottomCenter,
|
|
),
|
|
),
|
|
),
|
|
Container(
|
|
margin: EdgeInsets.only(top: 24.sp),
|
|
child: Column(
|
|
children: [
|
|
Center(
|
|
child: Text(
|
|
"提示",
|
|
style:
|
|
TextStyle(color: Colors.white, fontSize: 16.sp),
|
|
),
|
|
),
|
|
Container(
|
|
margin: EdgeInsets.only(
|
|
top: 12.sp, left: 14.sp, right: 14.sp),
|
|
alignment: Alignment.center,
|
|
child: Text(
|
|
"是否确认删除该形象照。",
|
|
textAlign: TextAlign.center,
|
|
style: TextStyle(
|
|
color: const Color(0xCCF7FAFA), fontSize: 16.sp),
|
|
),
|
|
),
|
|
Row(
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
children: [
|
|
GestureDetector(
|
|
onTap: () {
|
|
Navigator.pop(context);
|
|
},
|
|
child: Container(
|
|
margin: EdgeInsets.only(top: 30.sp),
|
|
decoration: BoxDecoration(
|
|
borderRadius: BorderRadius.circular(17),
|
|
gradient: const LinearGradient(
|
|
colors: [
|
|
Color(0x26FFFFFF),
|
|
Color(0x26FFFFFF),
|
|
],
|
|
begin: Alignment.centerLeft,
|
|
end: Alignment.centerRight,
|
|
),
|
|
),
|
|
padding: EdgeInsets.only(
|
|
top: 10.sp,
|
|
bottom: 10.sp,
|
|
left: 52.sp,
|
|
right: 52.sp),
|
|
child: const Text(
|
|
"否",
|
|
style: TextStyle(
|
|
color: Colors.white,
|
|
fontSize: 12,
|
|
),
|
|
),
|
|
),
|
|
),
|
|
SizedBox(width: 24.sp),
|
|
GestureDetector(
|
|
onTap: () {
|
|
Navigator.pop(context);
|
|
controller.delAlbumImage(index);
|
|
},
|
|
child: Container(
|
|
margin: EdgeInsets.only(top: 24.sp),
|
|
decoration: BoxDecoration(
|
|
borderRadius: BorderRadius.circular(17),
|
|
gradient: const LinearGradient(
|
|
colors: [
|
|
Color(0xFF06F9FA),
|
|
Color(0xFFDC5BFD),
|
|
],
|
|
begin: Alignment.centerLeft,
|
|
end: Alignment.centerRight,
|
|
),
|
|
),
|
|
padding: EdgeInsets.only(
|
|
top: 10.sp,
|
|
bottom: 10.sp,
|
|
left: 52.sp,
|
|
right: 52.sp),
|
|
child: const Text(
|
|
"是",
|
|
style: TextStyle(
|
|
color: Colors.white,
|
|
fontSize: 12,
|
|
),
|
|
),
|
|
),
|
|
)
|
|
],
|
|
)
|
|
],
|
|
),
|
|
)
|
|
],
|
|
),
|
|
),
|
|
);
|
|
},
|
|
);
|
|
}
|
|
|
|
void _showReportDialog(BuildContext context) {
|
|
showDialog(
|
|
context: context,
|
|
builder: (BuildContext context) {
|
|
return Dialog(
|
|
backgroundColor: Colors.transparent,
|
|
child: Container(
|
|
height: 277.sp,
|
|
padding: const EdgeInsets.all(1.0),
|
|
child: Stack(
|
|
children: [
|
|
Container(
|
|
decoration: BoxDecoration(
|
|
shape: BoxShape.rectangle,
|
|
borderRadius: BorderRadius.circular(10.0),
|
|
gradient: const LinearGradient(
|
|
colors: [Color(0xFFDD3DF4), Color(0xFF30FFD9)],
|
|
begin: Alignment.topCenter,
|
|
end: Alignment.bottomCenter,
|
|
),
|
|
),
|
|
),
|
|
Container(
|
|
margin: EdgeInsets.all(1.sp),
|
|
decoration: BoxDecoration(
|
|
shape: BoxShape.rectangle,
|
|
borderRadius: BorderRadius.circular(10.0),
|
|
gradient: const LinearGradient(
|
|
colors: [Color(0xFF4C3E5F), Color(0xFF324140)],
|
|
begin: Alignment.topCenter,
|
|
end: Alignment.bottomCenter,
|
|
),
|
|
),
|
|
),
|
|
Container(
|
|
margin: EdgeInsets.only(top: 24.sp),
|
|
child: Column(
|
|
children: [
|
|
Center(
|
|
child: Text(
|
|
"是否拉黑",
|
|
style:
|
|
TextStyle(color: Colors.white, fontSize: 16.sp),
|
|
),
|
|
),
|
|
Container(
|
|
margin: EdgeInsets.only(top: 14.sp),
|
|
alignment: Alignment.center,
|
|
child: Image(
|
|
image: AssetImage(getMineImage("icon_dialog_black")),
|
|
width: 70.sp,
|
|
height: 70.sp,
|
|
),
|
|
),
|
|
Container(
|
|
margin: EdgeInsets.only(
|
|
top: 12.sp, left: 14.sp, right: 14.sp),
|
|
alignment: Alignment.center,
|
|
child: Text(
|
|
"拉黑后,你将屏蔽对方的任何信息若您关注了对方,将自动取消关注。",
|
|
textAlign: TextAlign.center,
|
|
style: TextStyle(
|
|
color: const Color(0xCCF7FAFA), fontSize: 16.sp),
|
|
),
|
|
),
|
|
Row(
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
children: [
|
|
GestureDetector(
|
|
onTap: () {
|
|
Navigator.pop(context);
|
|
},
|
|
child: Container(
|
|
margin: EdgeInsets.only(top: 24.sp),
|
|
decoration: BoxDecoration(
|
|
borderRadius: BorderRadius.circular(17),
|
|
gradient: const LinearGradient(
|
|
colors: [
|
|
Color(0x26FFFFFF),
|
|
Color(0x26FFFFFF),
|
|
],
|
|
begin: Alignment.centerLeft,
|
|
end: Alignment.centerRight,
|
|
),
|
|
),
|
|
padding: EdgeInsets.only(
|
|
top: 10.sp,
|
|
bottom: 10.sp,
|
|
left: 52.sp,
|
|
right: 52.sp),
|
|
child: const Text(
|
|
"否",
|
|
style: TextStyle(
|
|
color: Colors.white,
|
|
fontSize: 12,
|
|
),
|
|
),
|
|
),
|
|
),
|
|
SizedBox(width: 24.sp),
|
|
GestureDetector(
|
|
onTap: () {
|
|
logic.setBlock();
|
|
},
|
|
child: Container(
|
|
margin: EdgeInsets.only(top: 24.sp),
|
|
decoration: BoxDecoration(
|
|
borderRadius: BorderRadius.circular(17),
|
|
gradient: const LinearGradient(
|
|
colors: [
|
|
Color(0xFF06F9FA),
|
|
Color(0xFFDC5BFD),
|
|
],
|
|
begin: Alignment.centerLeft,
|
|
end: Alignment.centerRight,
|
|
),
|
|
),
|
|
padding: EdgeInsets.only(
|
|
top: 10.sp,
|
|
bottom: 10.sp,
|
|
left: 52.sp,
|
|
right: 52.sp),
|
|
child: const Text(
|
|
"是",
|
|
style: TextStyle(
|
|
color: Colors.white,
|
|
fontSize: 12,
|
|
),
|
|
),
|
|
),
|
|
)
|
|
],
|
|
)
|
|
],
|
|
),
|
|
)
|
|
],
|
|
),
|
|
),
|
|
);
|
|
},
|
|
);
|
|
}
|
|
}
|