Fix multi-image mode

This commit is contained in:
2025-02-21 13:00:15 +08:00
parent e829f567e5
commit 8adf61b54f
2 changed files with 12 additions and 11 deletions

View File

@@ -232,7 +232,7 @@ class _GalleryModeState extends State<_GalleryMode>
ImageProvider imageProvider =
_createImageProviderFromKey(imageKey, context);
return Expanded(
child: Image(
child: ComicImage(
image: imageProvider,
fit: BoxFit.contain,
),

View File

@@ -114,6 +114,7 @@ class _ReaderState extends State<Reader> with _ReaderLocation, _ReaderWindow {
late ReaderMode mode;
int get imagesPerPage {
if (mode.isContinuous) return 1;
if (isPortrait) {
return appdata.settings['readerScreenPicNumberForPortrait'] ?? 1;
} else {
@@ -126,12 +127,6 @@ class _ReaderState extends State<Reader> with _ReaderLocation, _ReaderWindow {
bool get isPortrait =>
MediaQuery.of(context).orientation == Orientation.portrait;
@override
void didChangeDependencies() {
super.didChangeDependencies();
_checkImagesPerPageChange();
}
void _checkImagesPerPageChange() {
int currentImagesPerPage = imagesPerPage;
if (_lastImagesPerPage != currentImagesPerPage) {
@@ -173,13 +168,10 @@ class _ReaderState extends State<Reader> with _ReaderLocation, _ReaderWindow {
}
}
if (widget.initialPage != null) {
page = (widget.initialPage! / imagesPerPage).ceil();
page = widget.initialPage!;
}
mode = ReaderMode.fromKey(appdata.settings['readerMode']);
history = widget.history;
_lastImagesPerPage = isPortrait
? appdata.settings['readerScreenPicNumberForPortrait'] ?? 1
: appdata.settings['readerScreenPicNumberForLandscape'] ?? 1;
Future.microtask(() {
updateHistory();
});
@@ -194,6 +186,15 @@ class _ReaderState extends State<Reader> with _ReaderLocation, _ReaderWindow {
super.initState();
}
@override
void didChangeDependencies() {
super.didChangeDependencies();
_lastImagesPerPage = imagesPerPage;
if (imagesPerPage != 1) {
page = (widget.initialPage! / imagesPerPage).ceil();
}
}
void setImageCacheSize() async {
var availableRAM = await MemoryInfo.getFreePhysicalMemorySize();
if (availableRAM == null) return;