我的Android应用程序在大纲/细节形式中具有特殊的布局:横向模式下左侧的列表必须与纵向模式下一样大。
我正在用代号一移植应用程序。
这是我在主窗体代码中的内容:
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
将被布局覆盖,但首选宽度将通过更新/旋转等方式保持不变。
请注意,首选大小方法已弃用,因为大多数用途不建议使用它们。更好的方法是使用在这种情况下可能不适用的布局。例如,表格布局支持放置具有宽度百分比约束的组件,这适用于大多数此类用例。
弃用只是为了引起您的注意,此 API 不会消失或停止工作......