Struct egui::containers::ScrollArea [−][src]
pub struct ScrollArea { /* fields omitted */ }
Expand description
Add vertical and/or horizontal scrolling to a contained Ui
.
egui::ScrollArea::vertical().show(ui, |ui| {
// Add a lot of widgets here.
});
Implementations
Create a horizontal scroll area.
Create a scroll area where both direction of scrolling is disabled. It’s unclear why you would want to do this.
Create a scroll area where you decide which axis has scrolling enabled.
For instance, ScrollAre::new([true, false])
enable horizontal scrolling.
👎 Deprecated: Use pub ScrollArea::vertical() instead
Use pub ScrollArea::vertical() instead
Will make the area be as high as it is allowed to be (i.e. fill the Ui
it is in)
👎 Deprecated: Use pub ScrollArea::vertical().max_height(…) instead
Use pub ScrollArea::vertical().max_height(…) instead
Use f32::INFINITY
if you want the scroll area to expand to fit the surrounding Ui
The maximum width of the outer frame of the scroll area.
Use f32::INFINITY
if you want the scroll area to expand to fit the surrounding Ui
(default).
See also Self::auto_shrink
.
The maximum height of the outer frame of the scroll area.
Use f32::INFINITY
if you want the scroll area to expand to fit the surrounding Ui
(default).
See also Self::auto_shrink
.
If false
(default), the scroll bar will be hidden when not needed/
If true
, the scroll bar will always be displayed even if not needed.
A source for the unique Id
, e.g. .id_source("second_scroll_area")
or .id_source(loop_index)
.
Set the vertical scroll offset position.
See also: Ui::scroll_to_cursor
and
Response::scroll_to_me
Turn on/off scrolling on the horizontal/vertical axes.
Control the scrolling behavior
If true
(default), the scroll area will respond to user scrolling
If false
, the scroll area will not respond to user scrolling
This can be used, for example, to optionally freeze scrolling while the user
is inputing text in a TextEdit
widget contained within the scroll area.
This controls both scrolling directions.
For each axis, should the containing area shrink if the content is small?
If true, egui will add blank space outside the scroll area. If false, egui will add blank space inside the scroll area.
Default: [true; 2]
.
The scroll handle will stick to the rightmost position even while the content size changes dynamically. This can be useful to simulate text scrollers coming in from right hand side. The scroll handle remains stuck until user manually changes position. Once “unstuck” it will remain focused on whatever content viewport the user left it on. If the scroll handle is dragged all the way to the right it will again become stuck and remain there until manually pulled from the end position.
The scroll handle will stick to the bottom position even while the content size changes dynamically. This can be useful to simulate terminal UIs or log/info scrollers. The scroll handle remains stuck until user manually changes position. Once “unstuck” it will remain focused on whatever content viewport the user left it on. If the scroll handle is dragged to the bottom it will again become stuck and remain there until manually pulled from the end position.
Show the ScrollArea
, and add the contents to the viewport.
If the inner area can be very long, consider using Self::show_rows
instead.
Efficiently show only the visible part of a large number of rows.
let text_style = egui::TextStyle::Body;
let row_height = ui.fonts()[text_style].row_height();
// let row_height = ui.spacing().interact_size.y; // if you are adding buttons instead of labels.
let num_rows = 10_000;
egui::ScrollArea::vertical().show_rows(ui, row_height, num_rows, |ui, row_range| {
for row in row_range {
let text = format!("Row {}/{}", row + 1, num_rows);
ui.label(text);
}
});
This can be used to only paint the visible part of the contents.
add_contents
is past the viewport, which is the relative view of the content.
So if the passed rect has min = zero, then show the top left content (the user has not scrolled).
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for ScrollArea
impl Send for ScrollArea
impl Sync for ScrollArea
impl Unpin for ScrollArea
impl UnwindSafe for ScrollArea
Blanket Implementations
Mutably borrows from an owned value. Read more