pub struct PageTransition<Msg> { /* private fields */ }Expand description
Wraps the current page and animates whenever its key changes.
The outgoing screen is remembered cell by cell. When the key changes, each cell of the old
page blends into the matching cell of the new one over the theme’s motion.page: the old text
fades into the background during the first half and the new text rises out of it during the
second, while backgrounds blend continuously. With PageTransition::slide the new page also
travels a few cells into place, stepping one cell at a time with its colours blended in
proportion, from the right when going forward and from the left when going back.
With reduced motion, or when the area changed size, the new page appears at once. The new
page is live from the first frame: clicks and keys already reach it.
use qframe::prelude::*;
use qframe::widgets::PageTransition;
let page = router.current().clone();
ui.add_with(PageTransition::new(page.clone()).slide(true).direction(router.direction()), |ui| {
ui.page(page, |ui| {
ui.add(Text::new("Deploys"));
});
})
.fill();Implementations§
Source§impl<Msg: 'static> PageTransition<Msg>
impl<Msg: 'static> PageTransition<Msg>
Sourcepub fn new(key: impl Into<String>) -> Self
pub fn new(key: impl Into<String>) -> Self
A transition keyed by key, usually the router’s current page. Cross-fades by default.
Sourcepub fn slide(self, slide: bool) -> Self
pub fn slide(self, slide: bool) -> Self
Slides the incoming page a few cells into place as it fades in.
Sourcepub fn direction(self, direction: Navigation) -> Self
pub fn direction(self, direction: Navigation) -> Self
The way the navigation went, e.g. Router::direction;
decides which side a sliding page comes from.
Trait Implementations§
Source§impl<Msg: 'static> Container<Msg> for PageTransition<Msg>
impl<Msg: 'static> Container<Msg> for PageTransition<Msg>
Source§fn set_children(&mut self, children: Vec<Node<Msg>>)
fn set_children(&mut self, children: Vec<Node<Msg>>)
Source§impl<Msg: 'static> Widget<Msg> for PageTransition<Msg>
impl<Msg: 'static> Widget<Msg> for PageTransition<Msg>
Source§fn measure(&self, cx: &mut MeasureCx<'_>, available: Size) -> Size
fn measure(&self, cx: &mut MeasureCx<'_>, available: Size) -> Size
available.Source§fn children_mut(&mut self) -> &mut [Node<Msg>]
fn children_mut(&mut self) -> &mut [Node<Msg>]
Source§fn paint_overlay(&self, _cx: &mut PaintCx<'_>, _anchor: Rect)
fn paint_overlay(&self, _cx: &mut PaintCx<'_>, _anchor: Rect)
PaintCx::request_overlay. anchor is the area the widget was painted in.Auto Trait Implementations§
impl<Msg> !RefUnwindSafe for PageTransition<Msg>
impl<Msg> !Send for PageTransition<Msg>
impl<Msg> !Sync for PageTransition<Msg>
impl<Msg> !UnwindSafe for PageTransition<Msg>
impl<Msg> Freeze for PageTransition<Msg>
impl<Msg> Unpin for PageTransition<Msg>
impl<Msg> UnsafeUnpin for PageTransition<Msg>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more