quranPagesController property
PreloadPageController
get
quranPagesController
Implementation
PreloadPageController get quranPagesController {
// إذا لم يكن الـ controller مُهيأً بعد، أنشئه
// لا تتحقق من hasClients هنا لأن ذلك يسبب إعادة إنشاء الـ controller
// قبل أن يتم ربطه بالـ PageView
QuranCtrl.instance._pageController ??= PreloadPageController(
initialPage: (_quranRepository.getLastPage() ?? 1) - 1,
keepPage: true,
viewportFraction: 1.0,
);
return QuranCtrl.instance._pageController!;
}
set
quranPagesController
(PreloadPageController controller)
Implementation
set quranPagesController(PreloadPageController controller) {
// حفظ الـ controller الجديد
// إذا كان هناك controller قديم، قم بالتخلص منه أولاً
if (QuranCtrl.instance._pageController != null &&
QuranCtrl.instance._pageController!.hasClients) {
try {
QuranCtrl.instance._pageController!.dispose();
} catch (_) {
// تجاهل الأخطاء إذا كان قد تم التخلص منه مسبقاً
}
}
QuranCtrl.instance._pageController = controller;
}