diff --git a/lib/common/widgets/image/custom_grid_view.dart b/lib/common/widgets/image/custom_grid_view.dart index e761d215..d2d07a47 100644 --- a/lib/common/widgets/image/custom_grid_view.dart +++ b/lib/common/widgets/image/custom_grid_view.dart @@ -269,6 +269,10 @@ class _CustomGridViewDelegate extends MultiChildLayoutDelegate { @override bool shouldRelayout(_CustomGridViewDelegate oldDelegate) { - return space != oldDelegate.space || itemCount != oldDelegate.itemCount; + return space != oldDelegate.space || + itemCount != oldDelegate.itemCount || + column != oldDelegate.column || + width != oldDelegate.width || + height != oldDelegate.height; } } diff --git a/lib/pages/live_room/superchat/superchat_card.dart b/lib/pages/live_room/superchat/superchat_card.dart index 991fe11e..1b986b13 100644 --- a/lib/pages/live_room/superchat/superchat_card.dart +++ b/lib/pages/live_room/superchat/superchat_card.dart @@ -23,13 +23,13 @@ class SuperChatCard extends StatefulWidget { class _SuperChatCardState extends State { Timer? _timer; - RxInt _remains = 0.obs; + RxInt? _remains; @override void initState() { super.initState(); if (widget.item.expired) { - _onRemove(); + _remove(); return; } final now = DateTime.now().millisecondsSinceEpoch ~/ 1000; @@ -38,10 +38,16 @@ class _SuperChatCardState extends State { _remains = offset.obs; _timer = Timer.periodic(const Duration(seconds: 1), _callback); } else { - _onRemove(); + _remove(); } } + void _remove() { + WidgetsBinding.instance.addPostFrameCallback( + (_) => Future.delayed(const Duration(seconds: 1), _onRemove), + ); + } + void _onRemove() { widget ..item.expired = true @@ -49,9 +55,9 @@ class _SuperChatCardState extends State { } void _callback(_) { - final remains = _remains.value; + final remains = _remains!.value; if (remains > 0) { - _remains.value = remains - 1; + _remains!.value = remains - 1; } else { _cancelTimer(); _onRemove(); @@ -120,12 +126,13 @@ class _SuperChatCardState extends State { ], ), ), - Obx( - () => Text( - _remains.toString(), - style: const TextStyle(fontSize: 14, color: Colors.grey), + if (_remains != null) + Obx( + () => Text( + _remains.toString(), + style: const TextStyle(fontSize: 14, color: Colors.grey), + ), ), - ), ], ), ), diff --git a/lib/pages/live_room/view.dart b/lib/pages/live_room/view.dart index 5f48a94f..943ec405 100644 --- a/lib/pages/live_room/view.dart +++ b/lib/pages/live_room/view.dart @@ -254,7 +254,7 @@ class _LiveRoomPageState extends State "id": Utils.generateRandomString(8), "price": 66, "end_time": - DateTime.now().millisecondsSinceEpoch ~/ 1000 + 5, + DateTime.now().millisecondsSinceEpoch ~/ 1000 - 5, "message": Utils.generateRandomString(55), "user_info": { "face": "", diff --git a/lib/pages/live_room/widgets/chat_panel.dart b/lib/pages/live_room/widgets/chat_panel.dart index 97d63b43..3493b9d4 100644 --- a/lib/pages/live_room/widgets/chat_panel.dart +++ b/lib/pages/live_room/widgets/chat_panel.dart @@ -89,7 +89,7 @@ class LiveRoomChatPanel extends StatelessWidget { "id": Utils.generateRandomString(8), "price": 66, "end_time": - DateTime.now().millisecondsSinceEpoch ~/ 1000 + 5, + DateTime.now().millisecondsSinceEpoch ~/ 1000 - 5, "message": "message message message message message", "user_info": { "face": "", diff --git a/lib/pages/search/controller.dart b/lib/pages/search/controller.dart index 101f66f9..ec6f6256 100644 --- a/lib/pages/search/controller.dart +++ b/lib/pages/search/controller.dart @@ -69,7 +69,6 @@ class SSearchController extends GetxController // suggestion final bool searchSuggestion = Pref.searchSuggestion; - late final RxList searchSuggestList; // trending