pub struct AlwaysScrollable { /* private fields */ }Expand description
Flutter’s AlwaysScrollableScrollPhysics: accept a drag whether or not
there is anything to scroll, and defer everything else to the chained
parent.
Composed rather than used alone — AlwaysScrollable::new().chain(Clamping::new())
is a clamping surface that a pull-to-refresh gesture can still reach on a
short page.
Implementations§
Source§impl AlwaysScrollable
impl AlwaysScrollable
Sourcepub fn new() -> AlwaysScrollable
pub fn new() -> AlwaysScrollable
A standalone always-scrollable physics (no chained parent).
Sourcepub fn chain(self, parent: impl ScrollPhysics + 'static) -> AlwaysScrollable
pub fn chain(self, parent: impl ScrollPhysics + 'static) -> AlwaysScrollable
Chain parent behind this physics, the module-wide composition
convention (ScrollPhysics’ Chaining).
Trait Implementations§
Source§impl Debug for AlwaysScrollable
impl Debug for AlwaysScrollable
Source§impl Default for AlwaysScrollable
impl Default for AlwaysScrollable
Source§fn default() -> AlwaysScrollable
fn default() -> AlwaysScrollable
Returns the “default value” for a type. Read more
Source§impl ScrollPhysics for AlwaysScrollable
impl ScrollPhysics for AlwaysScrollable
Source§fn should_accept_user_offset(&self, _metrics: &ScrollMetrics) -> bool
fn should_accept_user_offset(&self, _metrics: &ScrollMetrics) -> bool
The one thing this physics has an opinion about.
Source§fn parent(&self) -> Option<&dyn ScrollPhysics>
fn parent(&self) -> Option<&dyn ScrollPhysics>
The chained parent physics, if this one was built via
chain(...).
None for a physics built standalone (the chain’s root).Source§fn apply_physics_to_user_offset(
&self,
metrics: &ScrollMetrics,
offset: f64,
) -> f64
fn apply_physics_to_user_offset( &self, metrics: &ScrollMetrics, offset: f64, ) -> f64
Map a raw user drag delta (finger px, signed in the content’s own
direction) to the delta actually applied to the position. Must not
alter the in-bounds portion of a drag — only a physics with an
out-of-bounds opinion (e.g. added resistance) touches this. Read more
Source§fn apply_boundary_conditions(&self, metrics: &ScrollMetrics, value: f64) -> f64
fn apply_boundary_conditions(&self, metrics: &ScrollMetrics, value: f64) -> f64
Given a proposed new
pixels value, return the portion the position
must not absorb — the boundary-rejected excess. 0.0 means the
proposal is fully allowed (a bouncing physics past an edge); the full
proposed − clamped distance means none of it is (a clamping
physics). Read moreSource§fn create_ballistic_simulation(
&self,
metrics: &ScrollMetrics,
velocity: f64,
) -> Option<Box<dyn Simulation>>
fn create_ballistic_simulation( &self, metrics: &ScrollMetrics, velocity: f64, ) -> Option<Box<dyn Simulation>>
Build the ballistic motion to run after a gesture releases with
velocity (px/s, signed like ScrollMetrics::pixels). None means
no animation — the consuming widget falls back to its own legacy
path/rest handling. Read moreSource§fn carried_momentum(&self, existing_velocity: f64) -> f64
fn carried_momentum(&self, existing_velocity: f64) -> f64
Momentum (px/s) to add onto a new fling’s initial velocity when motion
is already live (a re-fling mid-animation carries some of the old
velocity forward rather than starting cold). Read more
Source§fn min_fling_velocity(&self) -> f64
fn min_fling_velocity(&self) -> f64
The minimum release speed that starts a fling. Read more
Source§fn max_fling_velocity(&self) -> f64
fn max_fling_velocity(&self) -> f64
The fastest fling speed this physics honors. Read more
Source§fn tolerance_for(&self, metrics: &ScrollMetrics) -> Tolerance
fn tolerance_for(&self, metrics: &ScrollMetrics) -> Tolerance
The velocity/distance tolerance a ballistic simulation settles within. Read more
Source§fn spring(&self) -> SpringDescription
fn spring(&self) -> SpringDescription
The spring a bounce-back/snap simulation is built from. Read more
Auto Trait Implementations§
impl !RefUnwindSafe for AlwaysScrollable
impl !Send for AlwaysScrollable
impl !Sync for AlwaysScrollable
impl !UnwindSafe for AlwaysScrollable
impl Freeze for AlwaysScrollable
impl Unpin for AlwaysScrollable
impl UnsafeUnpin for AlwaysScrollable
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> StorageAccess<T> for T
impl<T> StorageAccess<T> for T
Source§fn as_borrowed(&self) -> &T
fn as_borrowed(&self) -> &T
Borrows the value.
Source§fn into_taken(self) -> T
fn into_taken(self) -> T
Takes the value.