pub fn pick_list<'a, T, L, V, Message, Theme, Renderer>(
options: L,
selected: Option<V>,
on_selected: impl Fn(T) -> Message + 'a,
) -> PickList<'a, T, L, V, Message, Theme, Renderer>
Expand description
Creates a new PickList
.
Pick lists display a dropdown list of selectable options.
§Example
use iced::widget::pick_list;
struct State {
favorite: Option<Fruit>,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
enum Fruit {
Apple,
Orange,
Strawberry,
Tomato,
}
#[derive(Debug, Clone)]
enum Message {
FruitSelected(Fruit),
}
fn view(state: &State) -> Element<'_, Message> {
let fruits = [
Fruit::Apple,
Fruit::Orange,
Fruit::Strawberry,
Fruit::Tomato,
];
pick_list(
fruits,
state.favorite,
Message::FruitSelected,
)
.placeholder("Select your favorite fruit...")
.into()
}
fn update(state: &mut State, message: Message) {
match message {
Message::FruitSelected(fruit) => {
state.favorite = Some(fruit);
}
}
}
impl std::fmt::Display for Fruit {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(match self {
Self::Apple => "Apple",
Self::Orange => "Orange",
Self::Strawberry => "Strawberry",
Self::Tomato => "Tomato",
})
}
}