HouseItem.dart 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. import 'package:flutter/material.dart';
  2. import 'package:flutter/cupertino.dart';
  3. import 'package:flutter/material.dart' as prefix0;
  4. import 'package:wanna_battle/model/PlayerInfo.dart';
  5. import '../model/HouseInfo.dart';
  6. import '../model/GameInfo.dart';
  7. import '../pages/RoomInfo.dart';
  8. import 'package:cached_network_image/cached_network_image.dart';
  9. import 'dart:ui';
  10. class HouseItem extends StatelessWidget {
  11. HouseItem(this.houseInfo, this.gameInfo, {this.playerInfo = null});
  12. HouseInfo houseInfo;
  13. GameInfo gameInfo;
  14. PlayerInfo playerInfo;
  15. List<String> imageList = ['images/img_fangjian_hong.png', 'images/img_fangjian_huise.png'];
  16. @override
  17. Widget build(BuildContext context) {
  18. return Container(
  19. margin: EdgeInsets.only(bottom: 10, left: 15, right: 15),
  20. decoration: BoxDecoration(color: Colors.white, borderRadius: BorderRadius.all(Radius.circular(4))),
  21. child: Material(
  22. color: Colors.transparent,
  23. child: InkWell(
  24. onTap: () {
  25. Navigator.push(context, CupertinoPageRoute(builder: (context) => RoomInfo(roomId: houseInfo.id.toString())));
  26. },
  27. child: Container(
  28. height: 80,
  29. decoration: BoxDecoration(
  30. image: DecorationImage(
  31. image: AssetImage(imageList[houseInfo.statusFlag == 0 ? 0 : 1]), fit: BoxFit.fitHeight, alignment: Alignment.bottomRight),
  32. ),
  33. padding: EdgeInsets.all(10),
  34. child: Row(
  35. children: <Widget>[
  36. ClipRRect(
  37. borderRadius: BorderRadius.circular(4.0),
  38. child: CachedNetworkImage(
  39. imageUrl: gameInfo.icon,
  40. width: 60,
  41. height: 60,
  42. fit: BoxFit.cover,
  43. ),
  44. ),
  45. Container(
  46. width: 10,
  47. ),
  48. Expanded(
  49. flex: 1,
  50. child: Column(
  51. mainAxisAlignment: MainAxisAlignment.center,
  52. crossAxisAlignment: CrossAxisAlignment.start,
  53. children: <Widget>[
  54. Text(houseInfo.houseName, overflow: TextOverflow.ellipsis, style: TextStyle(fontSize: 16, color: Colors.black)),
  55. Container(
  56. height: 4,
  57. ),
  58. Text('' + (houseInfo.scoreType == 0 ? '评分' : '吃鸡') + '模式',
  59. overflow: TextOverflow.ellipsis, style: TextStyle(fontSize: 13, color: Color(0xFF999999)))
  60. ],
  61. ),
  62. ),
  63. Column(
  64. mainAxisAlignment: MainAxisAlignment.center,
  65. children: <Widget>[
  66. _topWidget(playerInfo),
  67. Row(
  68. children: <Widget>[
  69. Text(
  70. '${houseInfo.playerNumber!=null?houseInfo.playerNumber:0}/${houseInfo.maxNumber}',
  71. style: TextStyle(color: Colors.white, fontSize: 14),
  72. )
  73. ],
  74. )
  75. ],
  76. )
  77. ],
  78. ),
  79. ))));
  80. }
  81. Widget _topWidget(PlayerInfo playerInfo) {
  82. if (playerInfo == null) {
  83. return Image.asset('images/join.png');
  84. } else {
  85. if (playerInfo.ranking == 1) {
  86. return Text(
  87. '吃鸡',
  88. style: prefix0.TextStyle(color: Color(0xFFD4504B), fontSize: 14, fontWeight: FontWeight.w600)
  89. );
  90. } else {
  91. return Text('未吃鸡',
  92. style: prefix0.TextStyle(color: Color(0xFF5C5C5C), fontSize: 14, fontWeight: FontWeight.w600));
  93. }
  94. }
  95. // return Container();
  96. }
  97. }