mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-05-09 03:27:46 +08:00
@@ -4,14 +4,19 @@ import 'package:PiliPlus/http/live.dart';
|
||||
import 'package:PiliPlus/http/loading_state.dart';
|
||||
import 'package:PiliPlus/models_new/live/live_area_list/area_item.dart';
|
||||
import 'package:PiliPlus/pages/common/common_list_controller.dart';
|
||||
import 'package:flutter/material.dart' show TabController;
|
||||
import 'package:get/get_state_manager/src/rx_flutter/rx_ticket_provider_mixin.dart';
|
||||
|
||||
class LiveAreaDetailController
|
||||
extends CommonListController<List<AreaItem>?, AreaItem> {
|
||||
extends CommonListController<List<AreaItem>?, AreaItem>
|
||||
with GetSingleTickerProviderStateMixin {
|
||||
LiveAreaDetailController(this.areaId, this.parentAreaId);
|
||||
final dynamic areaId;
|
||||
final dynamic parentAreaId;
|
||||
|
||||
late int initialIndex = 0;
|
||||
TabController? tabController;
|
||||
|
||||
bool showFirstFrame = false;
|
||||
|
||||
@override
|
||||
void onInit() {
|
||||
@@ -22,7 +27,13 @@ class LiveAreaDetailController
|
||||
@override
|
||||
List<AreaItem>? getDataList(List<AreaItem>? response) {
|
||||
if (response != null && response.isNotEmpty) {
|
||||
initialIndex = max(0, response.indexWhere((e) => e.id == areaId));
|
||||
assert(tabController == null);
|
||||
final initialIndex = max(0, response.indexWhere((e) => e.id == areaId));
|
||||
tabController = TabController(
|
||||
length: response.length,
|
||||
initialIndex: initialIndex,
|
||||
vsync: this,
|
||||
);
|
||||
}
|
||||
return response;
|
||||
}
|
||||
@@ -30,4 +41,11 @@ class LiveAreaDetailController
|
||||
@override
|
||||
Future<LoadingState<List<AreaItem>?>> customGetData() =>
|
||||
LiveHttp.liveRoomAreaList(parentid: parentAreaId);
|
||||
|
||||
@override
|
||||
void onClose() {
|
||||
tabController?.dispose();
|
||||
tabController = null;
|
||||
super.onClose();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user