track_choose_friend_item.dart 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import 'dart:ui';
  2. import 'package:cached_network_image/cached_network_image.dart';
  3. import 'package:flutter/cupertino.dart';
  4. import 'package:flutter/material.dart';
  5. import 'package:flutter_screenutil/flutter_screenutil.dart';
  6. import 'package:location/resource/colors.gen.dart';
  7. import 'package:location/utils/common_expand.dart';
  8. import '../../../data/bean/user_info.dart';
  9. typedef SelectAcceptCallback = void Function(UserInfo itemInfo);
  10. Widget createUserItem(UserInfo itemInfo,bool isSelect,{required SelectAcceptCallback onSelectItem}) {
  11. return GestureDetector(
  12. onTap: () {
  13. onSelectItem(itemInfo);
  14. },
  15. child: Container(
  16. decoration: isSelect ? BoxDecoration(
  17. color: "#EAEAFF".color,
  18. borderRadius: BorderRadius.circular(10.w),
  19. border: Border.all(color: "#EAEAFF".color, width: 1.w),
  20. ) : BoxDecoration(
  21. color: ColorName.white,
  22. borderRadius: BorderRadius.circular(10.w),
  23. border: Border.all(color: Color(0xFFE3E3FF), width: 1.w),
  24. ),
  25. margin: EdgeInsets.only(bottom: 8.w),
  26. padding: EdgeInsets.symmetric(horizontal: 8.w, vertical: 8.w),
  27. child: Row(
  28. children: [
  29. ClipOval(
  30. child: Container(
  31. width: 40.w,
  32. height: 40.w,
  33. child: CachedNetworkImage(imageUrl: itemInfo.avatar ?? "", fit: BoxFit.cover),
  34. ),
  35. ),
  36. SizedBox(width: 8.w),
  37. Expanded(
  38. child: Text(
  39. (itemInfo.name ?? "").length > 11 ? '${(itemInfo.name ?? "").substring(0,11)}...' : (itemInfo.name ?? itemInfo.phoneNumber ?? ""),
  40. style: TextStyle(
  41. fontSize: 12.sp,
  42. color: "#333333".color,
  43. fontWeight: FontWeight.bold)),
  44. ),
  45. ],
  46. ),
  47. ),
  48. );
  49. }