代号一 - 调整 master/detail 布局
Codename One - resizing master/detail layout
我的 Android 应用程序有一个特殊的 master/detail 布局:横向模式下左侧的列表必须与纵向模式下的一样大。
我正在移植代号为 One 的应用程序。
这是我在 mainForm 代码中的内容:
if(isTablet() && !isPortrait()) {
itemListContainer.setWidth(Display.getInstance().getDisplayHeight());
editingContainer.setWidth(Display.getInstance().getDisplayWidth()-Display.getInstance().getDisplayHeight());
System.out.println("size "+itemListContainer.getWidth()+" "+itemListContainer.getHeight());
//width was 0, now it is 1536 but the actual layout is the same as before, height is 0
//calls to animate() were here but useless
mainForm.add(itemListContainer).add( editingContainer);
} else {
mainForm.add(itemListContainer);
}
我也试过调用 animate() 方法。
mainForm布局为BoxLayout.x(),即横排。
以上代码对大小或布局没有影响。我在模拟器上得到了相同的布局,左侧容器的大小与我放入其中的标签大小相同。
调整大小的正确方法是什么?
使用setPreferredW(int)
。 setWidth
将被布局覆盖,但首选宽度将持续到 updates/rotation 等
请注意,首选大小方法已弃用,因为大多数用途不鼓励使用它们。更好的方法是使用在这种情况下可能不适用的布局。例如。 table 布局支持放置具有宽度百分比约束的组件,适用于大多数此类用例。
弃用只是为了引起您的注意,这个 API 不会消失或停止工作...
我的 Android 应用程序有一个特殊的 master/detail 布局:横向模式下左侧的列表必须与纵向模式下的一样大。
我正在移植代号为 One 的应用程序。
这是我在 mainForm 代码中的内容:
if(isTablet() && !isPortrait()) {
itemListContainer.setWidth(Display.getInstance().getDisplayHeight());
editingContainer.setWidth(Display.getInstance().getDisplayWidth()-Display.getInstance().getDisplayHeight());
System.out.println("size "+itemListContainer.getWidth()+" "+itemListContainer.getHeight());
//width was 0, now it is 1536 but the actual layout is the same as before, height is 0
//calls to animate() were here but useless
mainForm.add(itemListContainer).add( editingContainer);
} else {
mainForm.add(itemListContainer);
}
我也试过调用 animate() 方法。
mainForm布局为BoxLayout.x(),即横排。
以上代码对大小或布局没有影响。我在模拟器上得到了相同的布局,左侧容器的大小与我放入其中的标签大小相同。
调整大小的正确方法是什么?
使用setPreferredW(int)
。 setWidth
将被布局覆盖,但首选宽度将持续到 updates/rotation 等
请注意,首选大小方法已弃用,因为大多数用途不鼓励使用它们。更好的方法是使用在这种情况下可能不适用的布局。例如。 table 布局支持放置具有宽度百分比约束的组件,适用于大多数此类用例。
弃用只是为了引起您的注意,这个 API 不会消失或停止工作...