Web浏览器显示为设备中的一行

时间:2017-03-13 14:47:21

标签: java codenameone

我尝试在代码中添加网络浏览器:

@Override
    protected void beforeMain(Form f) {

        final Container cont = new Container(new BorderLayout());
        String url = "https://www.google.com";

        WebBrowser web = new WebBrowser() {

            @Override
            public void onLoad(String url) {

                this.setShouldCalcPreferredSize(true);

                Display.getInstance().callSerially(new Runnable() {

                    public void run() {

                        cont.revalidate();

                    }
                });
            }

        };

        web.setURL(url);
        cont.addComponent(BorderLayout.CENTER, web);
        cont.revalidate();
        f.addComponent(cont);
}

在模拟器中工作正常,但在Android设备中显示单像素线...为什么?

感谢

1 个答案:

答案 0 :(得分:2)

问题是因为您的表单布局是FlowLayout。将表单布局更改为BorderLayout,然后将浏览器容器添加到center

@Override
protected void beforeMain(Form f) {

    final Container cont = new Container(new BorderLayout());
    String url = "https://www.google.com";

    WebBrowser web = new WebBrowser() {

        @Override
        public void onLoad(String url) {

            this.setShouldCalcPreferredSize(true);

            Display.getInstance().callSerially(new Runnable() {

                public void run() {

                    cont.revalidate();

                }
            });
        }

    };

    web.setURL(url);
    cont.addComponent(BorderLayout.CENTER, web);
    f.setLayout(new BorderLayout());
    f.addComponent(BorderLayout.CENTER, cont);
    f.revalidate();
}