import 'package:flutter/material.dart'; class FikoYTPageController extends PageController { static final Map _instances = {}; final String id; int _lastPage; FikoYTPageController._(this.id, this._lastPage) : super(initialPage: _lastPage, keepPage: true, viewportFraction: 1) { addListener(_saveCurrentPage); } static FikoYTPageController getInstance(String id) { if (_instances.containsKey(id)) { print("${_instances[id]?.initialPage}"); return _instances[id]!; } final controller = FikoYTPageController._(id, 0); _instances[id] = controller; return controller; } void _saveCurrentPage() { if (hasClients && page != null) { _lastPage = page!.round(); _instances[id] = this; // Değiştiğinde instance güncelleniyor } } int get lastPage => _lastPage; @override void dispose() { removeListener(_saveCurrentPage); super.dispose(); } }