Hibok
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

47 regels
1.5 KiB

  1. import 'dart:math';
  2. import 'package:chat/chat/gift_widget.dart';
  3. import 'package:chat/models/gift_item_model.dart';
  4. import 'package:chat/models/gift_select_provider.dart';
  5. import 'package:chat/utils/screen.dart';
  6. import 'package:flutter/material.dart';
  7. import 'package:provider/provider.dart';
  8. class GiftPage extends StatelessWidget {
  9. final List<GiftItemModel> giftList;
  10. final int pageIndex;
  11. GiftPage(this.giftList, this.pageIndex);
  12. @override
  13. Widget build(BuildContext context) {
  14. int length = giftList.length - pageIndex * 8;
  15. length = min(length, 8);
  16. int curSelectIndex =
  17. Provider.of<GiftSelectProvider>(context).curSelectIndex;
  18. print('page $pageIndex curSelectIndex $curSelectIndex');
  19. return Container(
  20. width: Screen.width,
  21. height: 150,
  22. child: Wrap(
  23. direction: Axis.horizontal,
  24. runSpacing: 5,
  25. spacing: 10,
  26. children: List<Widget>.generate(length, (int i) {
  27. int index = pageIndex * 8 + i;
  28. return GestureDetector(
  29. child: GiftItem(
  30. itemModel: giftList[index],
  31. isSelected: index == curSelectIndex),
  32. onTap: () {
  33. if (index != curSelectIndex) {
  34. Provider.of<GiftSelectProvider>(context)
  35. .changeSelectIndex(index);
  36. }
  37. });
  38. })));
  39. }
  40. }