java.lang.Object
com.ultikits.ultitools.abstracts.gui.declarative.core.Widget
com.ultikits.ultitools.abstracts.gui.declarative.widgets.GridView<T>
Type Parameters:
T - 数据类型(如果使用数据列表)

public class GridView<T> extends Widget
GridView 是一个网格布局 Widget,将子 Widget 按网格排列。

支持:

  • 指定起始槽位和行列数
  • 自动计算子 Widget 位置
  • 支持数据列表自动映射

使用示例:


 // 手动指定子 Widget
 GridView.builder()
     .startSlot(10)
     .rows(4)
     .columns(7)
     .children(buttons)
     .build();

 // 从数据列表自动生成
 GridView.<ItemStack>builder()
     .startSlot(10)
     .columns(7)
     .items(itemList)
     .itemBuilder(item -> ItemDisplay.builder(item).build())
     .build();
 
Since:
6.2.0
Version:
1.0.0
Author:
UltiTools Team
  • Field Details

    • startSlot

      private final int startSlot
    • columns

      private final int columns
    • maxRows

      private final int maxRows
    • children

      @NotNull private final @NotNull List<Widget> children
  • Constructor Details

  • Method Details

    • builder

      @NotNull public static <T> @NotNull GridView.Builder<T> builder()
      创建 Builder。
      Type Parameters:
      T - 数据类型
      Returns:
      Builder
    • getStartSlot

      public int getStartSlot()
    • getColumns

      public int getColumns()
    • getMaxRows

      public int getMaxRows()
    • getChildren

      @NotNull public @NotNull List<Widget> getChildren()
    • calculateSlotForChild

      public int calculateSlotForChild(int childIndex)
      计算子 Widget 的实际槽位。
      Parameters:
      childIndex - 子 Widget 索引
      Returns:
      槽位索引
    • createElement

      @NotNull public @NotNull Element createElement()
      Description copied from class: Widget
      为此 Widget 创建对应的 Element。

      这是框架内部使用的方法,子类应该根据 Widget 类型返回适当的 Element 实现。

      Specified by:
      createElement in class Widget
      Returns:
      对应的 Element 实例