Draft Scrollable widget (no clipping yet!)
This commit is contained in:
parent
4769272122
commit
719c073fc6
13 changed files with 526 additions and 50 deletions
69
examples/scroll.rs
Normal file
69
examples/scroll.rs
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
use iced::{
|
||||
button, scrollable, Align, Application, Button, Color, Element, Image,
|
||||
Length, Scrollable, Text,
|
||||
};
|
||||
|
||||
pub fn main() {
|
||||
Example::default().run()
|
||||
}
|
||||
|
||||
#[derive(Default)]
|
||||
struct Example {
|
||||
paragraph_count: u16,
|
||||
|
||||
scroll: scrollable::State,
|
||||
add_button: button::State,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
pub enum Message {
|
||||
AddParagraph,
|
||||
}
|
||||
|
||||
impl Application for Example {
|
||||
type Message = Message;
|
||||
|
||||
fn update(&mut self, message: Message) {
|
||||
match message {
|
||||
Message::AddParagraph => {
|
||||
self.paragraph_count += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn view(&mut self) -> Element<Message> {
|
||||
let content = Scrollable::new(&mut self.scroll)
|
||||
.width(Length::Fill)
|
||||
.max_width(Length::Units(600))
|
||||
.spacing(20)
|
||||
.padding(20)
|
||||
.align_self(Align::Center);
|
||||
|
||||
//let content = (0..self.paragraph_count)
|
||||
// .fold(content, |column, _| column.push(lorem_ipsum()))
|
||||
// .push(
|
||||
// Button::new(&mut self.add_button, Text::new("Add paragraph"))
|
||||
// .on_press(Message::AddParagraph)
|
||||
// .padding(20)
|
||||
// .border_radius(5)
|
||||
// .align_self(Align::Center),
|
||||
// );
|
||||
|
||||
(0..10)
|
||||
.fold(content, |content, _| {
|
||||
content.push(
|
||||
Image::new(format!(
|
||||
"{}/examples/resources/ferris.png",
|
||||
env!("CARGO_MANIFEST_DIR")
|
||||
))
|
||||
.width(Length::Units(400))
|
||||
.align_self(Align::Center),
|
||||
)
|
||||
})
|
||||
.into()
|
||||
}
|
||||
}
|
||||
|
||||
fn lorem_ipsum() -> Text {
|
||||
Text::new("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi in dui vel massa blandit interdum. Quisque placerat, odio ut vulputate sagittis, augue est facilisis ex, eget euismod felis magna in sapien. Nullam luctus consequat massa, ac interdum mauris blandit pellentesque. Nullam in est urna. Aliquam tristique lectus ac luctus feugiat. Aenean libero diam, euismod facilisis consequat quis, pellentesque luctus erat. Praesent vel tincidunt elit.")
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue