以地图形式返回和侧面菜单问题

时间:2017-09-25 10:14:53

标签: codenameone

我在表单中有一张地图。当我返回另一个表格时,会显示白色屏幕。白色屏幕永远保持不变。只要再次单击后面的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设备中给出了这些问题

0 个答案:

没有答案