如何让黑莓屏幕上的标题屏幕高度?
问题描述:
setTitle等于null后为什么getHeight? 如何获得实际身高值?如何让黑莓屏幕上的标题屏幕高度?
public class ActivityScreen extends MainScreen {
/**
* Creates new instance Activity screen
*/
public ActivityScreen() {
super();
TitleFieldManager titleField = new TitleFieldManager(Display.getWidth());
super.setTitle(titleField);
if (titleField.getHeight() == 0) {
// Why titleField.getHeight() == 0 ?
}
}
}
答
因为你调用屏幕的构造titleField.getHeight()
。此时,UI框架尚未通过屏幕的布局/测量过程。例如,如果至少在一个屏幕的paint(Graphics graphics)
调用已执行后调用相同的titleField.getHeight()
,则可以获得非零值。所有布局/测量都可以在屏幕内容被绘制之前保证通过。
检查Manager.sublayout(int width, int height) API。 MainScreen
也是Manager
。因此,在屏幕构建完成后的某一时刻,但在绘制屏幕之前,UI框架会调用其所有布局/测量发生的地方(所有子域都获取其大小)。
答
我不是100%确定这一点,但我认为元素的高度是在包含它的管理器布置时计算出来的。
尝试推动包含屏幕标题,然后调用titleField.getHeight()