Class StatelessWidget
java.lang.Object
com.ultikits.ultitools.abstracts.gui.declarative.core.Widget
com.ultikits.ultitools.abstracts.gui.declarative.core.StatelessWidget
StatelessWidget 是一个不需要可变状态的 Widget。
它完全依赖于构造时传入的配置参数来构建 UI。 当配置变化时,会创建新的 StatelessWidget 实例, 框架会自动 diff 并更新必要的部分。
适用场景:
- 纯展示性 UI(如标题、图标、静态文本)
- 完全由父 Widget 控制状态的 UI
- 没有副作用的纯函数式组件
使用示例:
public class ItemRow extends StatelessWidget {
private final ItemStack item;
private final String name;
private final Runnable onClick;
public ItemRow(ItemStack item, String name, Runnable onClick) {
this.item = item;
this.name = name;
this.onClick = onClick;
}
@Override
public Widget build(BuildContext context) {
return Row.builder()
.children(
ItemDisplay.builder(item).build(),
TextButton.builder()
.text(name)
.onClick(onClick)
.build()
)
.build();
}
}
- Since:
- 6.2.0
- Version:
- 1.0.0
- Author:
- UltiTools Team
- See Also:
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected创建一个新的 StatelessWidget。protectedStatelessWidget(SlotKey key) 创建一个新的 StatelessWidget,指定 key。 -
Method Summary
Modifier and TypeMethodDescriptionabstract @NotNull Widgetbuild(@NotNull BuildContext context) 构建此 Widget 的子树。@NotNull Element为此 Widget 创建对应的 Element。
-
Constructor Details
-
StatelessWidget
protected StatelessWidget()创建一个新的 StatelessWidget。 -
StatelessWidget
创建一个新的 StatelessWidget,指定 key。- Parameters:
key- 用于稳定标识此 Widget 的键
-
-
Method Details
-
build
构建此 Widget 的子树。这个方法在以下情况会被调用:
- Widget 首次被创建时
- 父 Widget 重建时
- 依赖的数据发生变化时
重要: build 方法应该是纯函数,不应该有副作用。 不要在 build 中修改状态、执行 I/O 操作或注册监听器。
- Parameters:
context- 构建上下文,包含玩家、GUI 配置等信息- Returns:
- 子 Widget 树
-
createElement
Description copied from class:Widget为此 Widget 创建对应的 Element。这是框架内部使用的方法,子类应该根据 Widget 类型返回适当的 Element 实现。
- StatelessWidget 返回
StatelessElement - StatefulWidget 返回
StatefulElement - RenderObjectWidget 返回
RenderObjectElement
- Specified by:
createElementin classWidget- Returns:
- 对应的 Element 实例
- StatelessWidget 返回
-