From 9e318f3361fe06863c573bc2a58034eddac0c823 Mon Sep 17 00:00:00 2001 From: tianmo Date: Fri, 16 Oct 2026 15:58:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8B=E6=AE=B5=E6=8F=90=E7=A4=BA=E5=8C=BA?= =?UTF-8?q?=EF=BC=9A=E5=8C=85=E8=BF=9B=20ScrollPane=20+=20=E5=9B=BA?= =?UTF-8?q?=E5=AE=9A=2090px=20=E9=AB=98=E5=BA=A6=EF=BC=8C=E4=BF=9D?= =?UTF-8?q?=E8=AF=81=E4=BB=BB=E6=84=8F=E5=81=9C=E9=9D=A0=E9=AB=98=E5=BA=A6?= =?UTF-8?q?=E4=B8=8B=E4=B8=89=E6=AE=B5=E9=83=BD=E5=90=84=E5=8D=A0=E4=B8=80?= =?UTF-8?q?=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- viewpanel/src/com/spineview/ObjectPanel.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/viewpanel/src/com/spineview/ObjectPanel.java b/viewpanel/src/com/spineview/ObjectPanel.java index 543a929..7fdb569 100644 --- a/viewpanel/src/com/spineview/ObjectPanel.java +++ b/viewpanel/src/com/spineview/ObjectPanel.java @@ -70,9 +70,16 @@ public final class ObjectPanel { Object scroll = scrollClass.getConstructor(actorClass, skinClass).newInstance(state.listTable, skin); state.listScroll = scroll; state.status = label(loader, skin, "Ready. Press Refresh to list scene objects."); + Object logScroll = null; state.nameField = fieldClass.getConstructor(String.class, skinClass) .newInstance("particle_bone", skin); + try { + logScroll = scrollClass.getConstructor(actorClass, skinClass).newInstance(state.status, skin); + } catch (Throwable error) { + System.err.println("[panel] 提示区滚动容器建不出来: " + error); + } + // 让面板铺满停靠框(WidgetGroup.setFillParent)。 call(root, Obf.TABLE_SET_FILL_PARENT, new Class[] {boolean.class}, void.class, Boolean.TRUE); // 内容整体靠上:不设的话控件会在停靠框里垂直居中/被挤到下面 @@ -104,8 +111,15 @@ public final class ObjectPanel { layoutCell(cell, Obf.CELL_TOP, Obf.CELL_EXPAND, Obf.CELL_FILL); // 下段:实时提示(多行、只靠左,不加 fill,保持自然高度贴在底部) call(root, Obf.TABLE_ROW, new Class[0], cellClass); - cell = call(root, Obf.TABLE_ADD, new Class[] {actorClass}, cellClass, state.status); - layoutCell(cell, Obf.CELL_LEFT, Obf.CELL_BOTTOM); + cell = call(root, Obf.TABLE_ADD, new Class[] {actorClass}, cellClass, + logScroll == null ? state.status : logScroll); + layoutCell(cell, Obf.CELL_LEFT, Obf.CELL_FILL_X); + try { + // 固定高度 90px:下段永远占一块,消息多了在它自己里滚 + call(cell, "L", new Class[] {float.class}, cellClass, Float.valueOf(90f)); + } catch (Throwable error) { + System.err.println("[panel] 提示区高度设置失败: " + error); + } wire(loader, refresh, new Runnable() { @Override