import 'package:flutter/material.dart'; class FikoYTPageController extends PageController { static final Map _instances = {}; static final Map _lastPages = {}; // Son sayfa bilgilerini saklıyoruz final String id; FikoYTPageController._(this.id, int initialPage) : super(initialPage: initialPage) { addListener(_updateLastPage); // Sayfa değişimlerini dinliyoruz } static FikoYTPageController getInstance(String id) { if (_instances.containsKey(id)) { print("🔄 [$id] Mevcut instance geri döndü. Son sayfa: ${_lastPages[id] ?? 0}"); return _instances[id]!; } final lastPage = _lastPages[id] ?? 0; // Eğer daha önce kaydedilmişse, kaldığı sayfayı al final controller = FikoYTPageController._(id, lastPage); _instances[id] = controller; print("🆕 [$id] Yeni instance oluşturuldu. Başlangıç Sayfası: $lastPage"); return controller; } void _updateLastPage() { if (hasClients && page != null) { _lastPages[id] = page!.round(); print("💾 [$id] Yeni sayfa kaydedildi: ${_lastPages[id]}"); } } @override void dispose() { _lastPages[id] = page?.round() ?? _lastPages[id] ?? 0; print("🛑 [$id] Son sayfa kaydedildi: ${_lastPages[id]}"); removeListener(_updateLastPage); super.dispose(); } }