我在表单中有一张地图。当我返回另一个表格时,会显示白色屏幕。白色屏幕永远保持不变。只要再次单击后面的btn或单击侧面菜单btn,它就会再次返回到指定的表单两次。我也在两种形式中使用了revalidate。 back函数适用于除了具有map组件的所有其他形式。
查看带有问题的视频here.
家庭表格
public final class Home extends Form {
public Home(Resources res) {
loadComponents(res);
revalidate();
}
public void loadComponents(Resources res) {
_ _ _ _ _ _ _
_ _ _ _ _ _ _
}
}
带有地图组件的表单
public class DealerLocation extends Form {
public DealerLocation(Resources res) {
super(new BorderLayout());
//this is not working well while same code works in all the forms except in map
Command back = new Command("") {
@Override
public void actionPerformed(ActionEvent ev) {
new Home(res).show();
}
};
setBackCommand(back);
SideMenu sm = new SideMenu(this, res);
final MapContainer cnt = new MapContainer();
cnt.setCameraPosition(new Coord(lat, lng));
cnt.addMarker(
EncodedImage.createFromImage(markerImg2, false),
new Coord(lat, lng),
"Hi marker",
"Optional long description",
evt -> {
ToastBar.showMessage("You clicked the marker", FontImage.MATERIAL_PLACE);
}
);
cnt.zoom(new Coord(27.6743128, 85.3144726), 15);
add(BorderLayout.CENTER, cnt);
revalidate();
}
}
SideMenu类
public class SideMenu {
public SideMenu(Form f, Resources res) {
FontImage homeIcon = FontImage.createMaterial(FontImage.MATERIAL_HOME, style, 3);
Command home = new Command(" Home", homeIcon) {
@Override
public void actionPerformed(ActionEvent evt) {
new Home(res).show();
}
};
f.addCommand(home);
FontImage bookingIcon = FontImage.createMaterial(FontImage.MATERIAL_FILTER_NONE, style, 3);
Command booking = new Command(" Book", bookingIcon) {
@Override
public void actionPerformed(ActionEvent evt) {
new Booking(res).show();
}
};
f.addCommand(booking);
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
}
}
对于上面相同的代码,如果我单击带有地图组件的表单中的侧面菜单图标,则该应用程序无法正常工作。它进入白色屏幕,然后是侧面菜单和所有这一切。表现非常糟糕。
观看视频here.
PS。它在模拟器中工作正常,但在Android设备中给出了这些问题