首页 文章

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

提问于
浏览
1

我试图在代码中添加Web浏览器:

@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 回答

  • 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();
    }
    

相关问题