Skip to main content

Component

Trait Component 

Source
pub trait Component {
Show 14 methods // Required method fn render(&self, cx: &mut RenderCx<'_>); // Provided methods fn event(&mut self, _event: &Event, _cx: &mut EventCx<'_>) { ... } fn style(&self) -> Style { ... } fn measure(&self, constraint: Constraint, _cx: &mut MeasureCx) -> Size { ... } fn layout(&mut self, _rect: Rect, _cx: &mut LayoutCx<'_>) { ... } fn mount(&mut self, _cx: &mut EventCx<'_>) { ... } fn unmount(&mut self, _cx: &mut EventCx<'_>) { ... } fn update(&mut self, _cx: &mut EventCx<'_>) { ... } fn type_name(&self) -> &str { ... } fn id(&self) -> Option<&str> { ... } fn class(&self) -> Option<&str> { ... } fn focusable(&self) -> bool { ... } fn for_each_child(&self, _f: &mut dyn FnMut(&Node)) { ... } fn for_each_child_mut(&mut self, _f: &mut dyn FnMut(&mut Node)) { ... }
}
Expand description

组件 trait——应用的基本组织单元

Required Methods§

Source

fn render(&self, cx: &mut RenderCx<'_>)

渲染组件内容

Provided Methods§

Source

fn event(&mut self, _event: &Event, _cx: &mut EventCx<'_>)

处理事件(可选实现)

Source

fn style(&self) -> Style

返回组件样式(可选实现)

Source

fn measure(&self, constraint: Constraint, _cx: &mut MeasureCx) -> Size

测量组件在给定约束下的自适应尺寸

默认实现:单行高度,宽度填满可用空间。

Source

fn layout(&mut self, _rect: Rect, _cx: &mut LayoutCx<'_>)

布局回调——组件在此计算子节点 rect 并调用 child.layout()

默认实现:无子节点,不执行任何操作。

Source

fn mount(&mut self, _cx: &mut EventCx<'_>)

首次挂载(初始化后调用)

Source

fn unmount(&mut self, _cx: &mut EventCx<'_>)

从树卸载(退出前调用)

Source

fn update(&mut self, _cx: &mut EventCx<'_>)

每次事件分发前调用

Source

fn type_name(&self) -> &str

组件类型名(用于样式表类型选择器匹配)

Source

fn id(&self) -> Option<&str>

组件 ID(用于样式表 #id 选择器匹配)

Source

fn class(&self) -> Option<&str>

组件 class(用于样式表 .class 选择器匹配)

Source

fn focusable(&self) -> bool

是否可聚焦(Tab 导航会跳过不可聚焦的组件)

Source

fn for_each_child(&self, _f: &mut dyn FnMut(&Node))

遍历子节点(为焦点系统等提供统一的树遍历接口)

Source

fn for_each_child_mut(&mut self, _f: &mut dyn FnMut(&mut Node))

遍历子节点(可变版本)

Implementors§