列表滚动(第二版):给列表单元格固定高度 360(Cell.height 载荷名 I,(F)LdR; 指纹确认)+ setForceScroll(false,true)(ScrollPane.I(ZZ)V 指纹确认);并把 setForceScroll/setOverscroll/Cell 尺寸方法写进 anchors.tsv+names.tsv

This commit is contained in:
tianmo committed 2026-10-16 16:15:35 +08:00
1 parent f558a4e4aa
commit d59287937d
3 files changed
+32

No files matched your search

@@ -126,6 +126,13 @@ public final class ObjectPanel {
cell = call(root, Obf.TABLE_ADD, new Class<?>[] {actorClass}, cellClass, scroll);
layoutCell(cell, Obf.CELL_TOP, Obf.CELL_EXPAND, Obf.CELL_FILL);
state.listCell = cell;
try {
// 给列表一个**固定高度**:这样 ScrollPane 必定比内容矮,可滚范围(maxY)一定 > 0。
// Cell.height(float) 的载荷名是 `I`(描述符 (F)LdR;,MapMethods 指纹确认)。
call(cell, "I", new Class<?>[] {float.class}, cellClass, Float.valueOf(360f));
} catch (Throwable error) {
System.err.println("[panel] 列表固定高度设置失败: " + error);
}
wire(loader, refresh, new Runnable() {
@Override
@@ -553,6 +560,9 @@ public final class ObjectPanel {
method.invoke(state.listScroll, Boolean.FALSE, Boolean.FALSE);
break;
}
// 再打开"强制纵向滚动":setForceScroll 在载荷里叫 `I`((ZZ)V,指纹确认 ~2/3)
call(state.listScroll, "I", new Class<?>[] {boolean.class, boolean.class}, void.class,
Boolean.FALSE, Boolean.TRUE);
} catch (Throwable error) {
System.err.println("[panel] 恢复滚动失败: " + error);
}