slideshow: option for no transition
This commit is contained in:
parent
ce0a253369
commit
3261e79c78
8 changed files with 42 additions and 1 deletions
|
@ -7,6 +7,7 @@ All notable changes to this project will be documented in this file.
|
|||
### Added
|
||||
|
||||
- mosaic layout
|
||||
- slideshow: option for no transition
|
||||
|
||||
## <a id="v1.7.0"></a>[v1.7.0] - 2022-09-19
|
||||
|
||||
|
|
|
@ -207,6 +207,7 @@
|
|||
"viewerTransitionParallax": "Parallax",
|
||||
"viewerTransitionFade": "Fade",
|
||||
"viewerTransitionZoomIn": "Zoom in",
|
||||
"viewerTransitionNone": "None",
|
||||
|
||||
"wallpaperTargetHome": "Home screen",
|
||||
"wallpaperTargetLock": "Lock screen",
|
||||
|
|
|
@ -167,6 +167,7 @@
|
|||
"viewerTransitionParallax": "Parallaxe",
|
||||
"viewerTransitionFade": "Fondu",
|
||||
"viewerTransitionZoomIn": "Zoom",
|
||||
"viewerTransitionNone": "Aucune",
|
||||
|
||||
"wallpaperTargetHome": "Écran d’accueil",
|
||||
"wallpaperTargetLock": "Écran de verrouillage",
|
||||
|
|
|
@ -167,6 +167,7 @@
|
|||
"viewerTransitionParallax": "시차",
|
||||
"viewerTransitionFade": "페이드",
|
||||
"viewerTransitionZoomIn": "확대",
|
||||
"viewerTransitionNone": "없음",
|
||||
|
||||
"wallpaperTargetHome": "홈 화면",
|
||||
"wallpaperTargetLock": "잠금화면",
|
||||
|
|
|
@ -28,6 +28,6 @@ enum VideoControls { play, playSeek, playOutside, none }
|
|||
|
||||
enum VideoLoopMode { never, shortOnly, always }
|
||||
|
||||
enum ViewerTransition { slide, parallax, fade, zoomIn }
|
||||
enum ViewerTransition { slide, parallax, fade, zoomIn, none }
|
||||
|
||||
enum WidgetShape { rrect, circle, heart }
|
|
@ -15,6 +15,8 @@ extension ExtraViewerTransition on ViewerTransition {
|
|||
return context.l10n.viewerTransitionFade;
|
||||
case ViewerTransition.zoomIn:
|
||||
return context.l10n.viewerTransitionZoomIn;
|
||||
case ViewerTransition.none:
|
||||
return context.l10n.viewerTransitionNone;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -28,6 +30,8 @@ extension ExtraViewerTransition on ViewerTransition {
|
|||
return PageTransitionEffects.fade(pageController, index, zoomIn: false);
|
||||
case ViewerTransition.zoomIn:
|
||||
return PageTransitionEffects.fade(pageController, index, zoomIn: true);
|
||||
case ViewerTransition.none:
|
||||
return PageTransitionEffects.none(pageController, index);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -119,4 +119,26 @@ class PageTransitionEffects {
|
|||
),
|
||||
);
|
||||
};
|
||||
|
||||
static TransitionBuilder none(
|
||||
PageController pageController,
|
||||
int index,
|
||||
) =>
|
||||
(context, child) {
|
||||
double opacity = 0;
|
||||
double dx = 0;
|
||||
if (pageController.hasClients && pageController.position.haveDimensions) {
|
||||
final position = (pageController.page! - index).clamp(-1.0, 1.0);
|
||||
final width = pageController.position.viewportDimension;
|
||||
opacity = (1 - position.abs()).roundToDouble().clamp(0, 1);
|
||||
dx = position * width;
|
||||
}
|
||||
return Opacity(
|
||||
opacity: opacity,
|
||||
child: Transform.translate(
|
||||
offset: Offset(dx, 0),
|
||||
child: child,
|
||||
),
|
||||
);
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
{
|
||||
"de": [
|
||||
"viewerTransitionNone",
|
||||
"tileLayoutMosaic"
|
||||
],
|
||||
|
||||
"el": [
|
||||
"viewerTransitionNone",
|
||||
"tileLayoutMosaic"
|
||||
],
|
||||
|
||||
|
@ -12,6 +14,7 @@
|
|||
"filterNoDateLabel",
|
||||
"filterNoTitleLabel",
|
||||
"filterRecentlyAddedLabel",
|
||||
"viewerTransitionNone",
|
||||
"viewDialogReverseSortOrder",
|
||||
"tileLayoutMosaic",
|
||||
"sortOrderNewestFirst",
|
||||
|
@ -28,10 +31,12 @@
|
|||
],
|
||||
|
||||
"id": [
|
||||
"viewerTransitionNone",
|
||||
"tileLayoutMosaic"
|
||||
],
|
||||
|
||||
"it": [
|
||||
"viewerTransitionNone",
|
||||
"tileLayoutMosaic"
|
||||
],
|
||||
|
||||
|
@ -40,6 +45,7 @@
|
|||
"filterNoDateLabel",
|
||||
"filterNoTitleLabel",
|
||||
"filterRecentlyAddedLabel",
|
||||
"viewerTransitionNone",
|
||||
"viewDialogReverseSortOrder",
|
||||
"tileLayoutMosaic",
|
||||
"sortOrderNewestFirst",
|
||||
|
@ -57,6 +63,7 @@
|
|||
],
|
||||
|
||||
"nl": [
|
||||
"viewerTransitionNone",
|
||||
"tileLayoutMosaic"
|
||||
],
|
||||
|
||||
|
@ -64,6 +71,7 @@
|
|||
"entryInfoActionEditTitleDescription",
|
||||
"filterNoDateLabel",
|
||||
"filterNoTitleLabel",
|
||||
"viewerTransitionNone",
|
||||
"viewDialogReverseSortOrder",
|
||||
"tileLayoutMosaic",
|
||||
"sortOrderNewestFirst",
|
||||
|
@ -78,6 +86,7 @@
|
|||
],
|
||||
|
||||
"ru": [
|
||||
"viewerTransitionNone",
|
||||
"tileLayoutMosaic"
|
||||
],
|
||||
|
||||
|
@ -96,6 +105,7 @@
|
|||
"viewerTransitionParallax",
|
||||
"viewerTransitionFade",
|
||||
"viewerTransitionZoomIn",
|
||||
"viewerTransitionNone",
|
||||
"wallpaperTargetHome",
|
||||
"wallpaperTargetLock",
|
||||
"wallpaperTargetHomeLock",
|
||||
|
@ -131,6 +141,7 @@
|
|||
],
|
||||
|
||||
"zh": [
|
||||
"viewerTransitionNone",
|
||||
"tileLayoutMosaic"
|
||||
]
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue