我的按钮在按下和关闭新屏幕后会向右移动。
我添加了一些按钮到一个垂直fieldmanager。然后我在水平fieldmanager上添加了垂直fieldmanager来居中按钮。
问题是BB 8900(曲线)上的一切都好吗?在9550(触摸屏)上,只有当我第一次打开屏幕时才有效。但如果我在这个屏幕上打开另一个屏幕并关闭打开的屏幕按钮就会向右移动。但只在9550上??在曲线上,我可以打开一个新的屏幕,然后关闭一个新的屏幕,看起来应该是这样的。有人知道这个问题吗?
VerticalFieldManager verticalFieldMng = new VerticalFieldManager();
ButtonField btnSendAdrViaSMS = new ButtonField("test");
verticalFieldMng2.add(btnSendAdrViaSMS);
ButtonField btn2 = new ButtonField("test2");
verticalFieldMng2.add(btn2);
ButtonField btn3 = new ButtonField("test2");
verticalFieldMng2.add(btn3);
HorizontalFieldManager horizontalFieldManager = new HorizontalFieldManager(HorizontalFieldManager.FIELD_HCENTER);
horizontalFieldManager.add(verticalFieldMng2);
add(horizontalFieldManager);
打开新屏幕使用
Screen_SendSMS sendSMS = new Screen_SendSMS("",link);
UiApplication.getUiApplication().pushModalScreen(sendSMS);
和关闭屏幕,我使用常规的"后退键"的BB设备不覆盖它。
这很奇怪,但在BB中我并不感到惊讶。
更新:在审查了一些我的代码中心的东西,我可以说,HorizontalFieldManager,因为滚动我猜,有问题的中心字段。因此,当我需要水平居中时,我使用垂直fieldmanager,当我需要垂直居中时,我使用HorizontalFieldManager。
中心字段的基本模式如下:
VerticalFieldManager vfm = new VerticalFieldManager(Manager.USE_ALL_WIDTH);
Field toCenter = new <Field>(DrawStyle.HCENTER | Field.FIELD_HCENTER );
vfm.add(toCenter);
纵行时为:
HorizontalFieldManager hfm = new HorizontalFieldManager(Manager.USE_ALL_HEIGHT);
Field toCenter = new <Field>(DrawStyle.VCENTER | Field.FIELD_VCENTER );
hfm.add(toCenter);
您可以使用算术或运算符将标志与其他样式标志组合。
在您的情况下,您必须这样做两次:首先是按钮和vfm,然后是vfm和hfm。