9 releases (breaking)

new 0.8.0 Feb 7, 2025
0.7.0 Dec 19, 2024
0.6.0 Oct 3, 2024
0.5.0 Jul 3, 2024
0.1.1 Oct 20, 2023

#7 in #pull

Download history 6/week @ 2024-10-20 8/week @ 2024-10-27 14/week @ 2024-11-03 1/week @ 2024-11-10 9/week @ 2024-11-17 2/week @ 2024-11-24 2/week @ 2024-12-01 14/week @ 2024-12-08 111/week @ 2024-12-15 5/week @ 2024-12-22 4/week @ 2024-12-29 10/week @ 2025-01-05 9/week @ 2025-01-12 3/week @ 2025-01-19 64/week @ 2025-02-02

77 downloads per month
Used in hello_egui

MIT license

32KB
288 lines

egui_pull_to_refresh

egui_ver Latest version Documentation unsafe forbidden License

... adds pull to refresh functionality to egui. It works by wrapping a widget in a PullToRefresh widget, which will display a refresh indicator when the user pulls down the widget.

Demo Videos:

https://github.com/lucasmerlin/hello_egui/assets/8009393/b8a7ca7f-4e4b-4ae9-bfad-1e98a88bf5ba

https://github.com/lucasmerlin/hello_egui/assets/8009393/c76e778e-6362-43cd-bef4-2d6e51eaf8d1

Usage

use egui::{Ui};
use egui_pull_to_refresh::PullToRefresh;
// This is the minimal example. Wrap some ui in a [`PullToRefresh`] widget
// and refresh when should_refresh() returns true.
fn my_ui(ui: &mut Ui, count: u64, loading: bool) -> bool {
    let response = PullToRefresh::new(loading).ui(ui, |ui| {
        ui.add_space(ui.available_size().y / 4.0);
        ui.vertical_centered(|ui| {
            ui.set_height(ui.available_size().y);
            ui.label("Pull to refresh demo");

            ui.label(format!("Count: {}", count));
        });
    });

    response.should_refresh()
}

Have a look at the other examples for more.

Dependencies

~4.5–9.5MB
~89K SLoC