Skip to main content

Expander

Struct Expander 

Source
pub struct Expander<'a, Message, Theme = Theme, Renderer = Renderer> { /* private fields */ }
Available on crate feature expander only.
Expand description

A collapsible container widget that can expand or collapse in any direction to show or hide its content.

The Expander widget provides a header that is always visible and a content section that can be toggled between expanded (visible) and collapsed (hidden) states. It is commonly used to conserve space in the UI while still allowing access to additional details on demand.

Both the header and content sections can host anything from plain text to more complex layouts.

§Example

enum Message {
    ExpanderPressed,
}

let mut expander = expander(
    button("Header").on_press(Message::ExpanderPressed),
    column!["Item 1", "Item 2", "Item 3"],
    self.is_expanded,
);

Implementations§

Source§

impl<'a, Message, Theme, Renderer> Expander<'a, Message, Theme, Renderer>

Source

pub fn new<H, C>(header: H, content: C, is_expanded: bool) -> Self
where H: Into<Element<'a, Message, Theme, Renderer>>, C: Into<Element<'a, Message, Theme, Renderer>>,

Creates a new Expander from the provided header and content.

Source

pub fn id(self, id: impl Into<Id>) -> Self

Set the id of the Expander.

Source

pub fn width(self, width: impl Into<Length>) -> Self

Sets the width of the Expander.

Source

pub fn height(self, height: impl Into<Length>) -> Self

Sets the height of the Expander.

Source

pub fn direction(self, direction: Direction) -> Self

Sets which way the contents are displayed when the Expander is expanded.

Trait Implementations§

Source§

impl<'a, Message, Theme, Renderer> From<Expander<'a, Message, Theme, Renderer>> for Element<'a, Message, Theme, Renderer>
where Message: 'a, Theme: 'a, Renderer: 'a + Renderer,

Source§

fn from(expander: Expander<'a, Message, Theme, Renderer>) -> Self

Converts to this type from the input type.
Source§

impl<Message, Theme, Renderer> Widget<Message, Theme, Renderer> for Expander<'_, Message, Theme, Renderer>
where Renderer: Renderer,

Source§

fn size(&self) -> Size<Length>

Returns the Size of the Widget in lengths.
Source§

fn tag(&self) -> Tag

Returns the Tag of the Widget.
Source§

fn state(&self) -> State

Returns the State of the Widget.
Source§

fn children(&self) -> Vec<Tree>

Returns the state Tree of the children of the Widget.
Source§

fn diff(&self, tree: &mut Tree)

Reconciles the Widget with the provided Tree.
Source§

fn layout( &mut self, tree: &mut Tree, renderer: &Renderer, limits: &Limits, ) -> Node

Returns the layout::Node of the Widget. Read more
Source§

fn operate( &mut self, tree: &mut Tree, layout: Layout<'_>, renderer: &Renderer, operation: &mut dyn Operation, )

Applies an Operation to the Widget.
Source§

fn update( &mut self, tree: &mut Tree, event: &Event, layout: Layout<'_>, cursor: Cursor, renderer: &Renderer, clipboard: &mut dyn Clipboard, shell: &mut Shell<'_, Message>, viewport: &Rectangle, )

Processes a runtime Event. Read more
Source§

fn draw( &self, tree: &Tree, renderer: &mut Renderer, theme: &Theme, style: &Style, layout: Layout<'_>, cursor: Cursor, viewport: &Rectangle, )

Draws the Widget using the associated Renderer.
Source§

fn mouse_interaction( &self, tree: &Tree, layout: Layout<'_>, cursor: Cursor, viewport: &Rectangle, renderer: &Renderer, ) -> Interaction

Returns the current mouse::Interaction of the Widget. Read more
Source§

fn overlay<'a>( &'a mut self, tree: &'a mut Tree, layout: Layout<'a>, renderer: &Renderer, viewport: &Rectangle, translation: Vector, ) -> Option<Element<'a, Message, Theme, Renderer>>

Returns the overlay of the Widget, if there is any.
Source§

fn size_hint(&self) -> Size<Length>

Returns a Size hint for laying out the Widget. Read more

Auto Trait Implementations§

§

impl<'a, Message, Theme = Theme, Renderer = ()> !RefUnwindSafe for Expander<'a, Message, Theme, Renderer>

§

impl<'a, Message, Theme = Theme, Renderer = ()> !Send for Expander<'a, Message, Theme, Renderer>

§

impl<'a, Message, Theme = Theme, Renderer = ()> !Sync for Expander<'a, Message, Theme, Renderer>

§

impl<'a, Message, Theme = Theme, Renderer = ()> !UnwindSafe for Expander<'a, Message, Theme, Renderer>

§

impl<'a, Message, Theme, Renderer> Freeze for Expander<'a, Message, Theme, Renderer>

§

impl<'a, Message, Theme, Renderer> Unpin for Expander<'a, Message, Theme, Renderer>

§

impl<'a, Message, Theme, Renderer> UnsafeUnpin for Expander<'a, Message, Theme, Renderer>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.