2011-12-16 175 views
1

我试图在我的黑莓应用程序内显示一个网站,但browserfield比屏幕高度小,我不能使它的大小相同。黑莓BrowserField不适合屏幕

beeing加载的页面实际上小于屏幕,但该网站是专为移动设备,并完全符合iphone webview,blabkberry浏览器和Firefox和铬。

我的代码如下:

manager = new VerticalFieldManager(VerticalFieldManager.VERTICAL_SCROLL | VerticalFieldManager.HORIZONTAL_SCROLL) 
    { 
     protected void sublayout(int maxWidth, int maxHeight) 
     { 
      super.sublayout(maxWidth, maxHeight); 
      setExtent(Display.getWidth(), Display.getHeight()); 
     } 
    }; 
    manager.setBackground(BackgroundFactory.createSolidBackground(Color.RED)); 

    BrowserFieldConfig myBrowserFieldConfig = new BrowserFieldConfig(); 

    myBrowserFieldConfig.setProperty(BrowserFieldConfig.ALLOW_CS_XHR, Boolean.TRUE); 
    myBrowserFieldConfig.setProperty(BrowserFieldConfig.JAVASCRIPT_ENABLED, Boolean.TRUE); 
    myBrowserFieldConfig.setProperty(BrowserFieldConfig.INITIAL_SCALE, new Float(1)); 

    browserField = new BrowserField(myBrowserFieldConfig); 
    browserField.requestContent(link); 

    manager.add(browserField); 

,我得到如下效果:当我加载该画面的孔筛红(经理背景)。之后,屏幕变成白色(我认为这是browserfield),然后当网页被加载时,屏幕再次变成红色,并且白色的部分缩小到一个线条高度,并随着网页材质开始显示而增长。问题是,页面应该适合所有的屏幕,就像在iphone和自定义浏览器中一样。

OBS:我使用的是黑莓OS版本sublayout通过Display.getHeight(6

回答

4

我不知道如果我的解决方案可以帮助你,但我面临与你完全相同的问题,花了几个小时后,我终于通过在我的html页面的标题部分添加了以下行来修复它:

<meta name="viewport" content="width=device-width,height=device-height,minimum-scale=1, maximum-scale=1" /> 

身高=设备高度固定我的问题

+0

谢谢sooooooooo太多了!正是我需要的。我有视口宽度,甚至没有考虑高度。再次感谢你!!!! – yanike 2014-05-14 03:01:39

0

尝试),而不是˚FmaxHeight

+0

喜,谢谢你的帮助,但我已经尝试过,那不是解决方案。我描述的问题的方式我试图告诉你,问题不在经理,因为洞屏幕是红色(经理背景)。 – Fernando 2011-12-19 12:02:12

1

尝试这样的:

protected void sublayout(int maxWidth, int maxHeight) 
{ 
    super.sublayout(Display.getWidth(), Display.getHeight()); 
    setExtent(Display.getWidth(), Display.getHeight()); 
} 
+0

谢谢你的帮助,但我已经尝试过,那不是解决方案。我在这里有一个浏览器问题,经理工作很好,因为洞屏幕涂成了红色(红色是经理背景) – Fernando 2011-12-19 12:03:27

5

这段代码在HTML:
<meta name="viewport" content="width=device-width,height=device-height,minimum-scale=1, maximum-scale=1" />
可以与该客户端进行更换:

config = new BrowserFieldConfig(); 
    config.setProperty(BrowserFieldConfig.VIEWPORT_WIDTH, new Integer(
      Display.getWidth())); 
    config.setProperty(BrowserFieldConfig.INITIAL_SCALE, new Float(1.0)); 

    config.setProperty(BrowserFieldConfig.USER_SCALABLE, Boolean.FALSE); 

    browserField = new BrowserField(config); 
0

试试这个

class MyFieldManager extends VerticalFieldManager 
    { 

    int width; 
    int height; 

    MyFieldManager(int w,int h) 

    { 
     super(Manager.VERTICAL_SCROLL | Manager.HORIZONTAL_SCROLL); 
     width=w; 
     height=h; 
    } 

    public void sublayout(int w,int h) 
    { 
     super.sublayout(w, h); 
     setExtent(width,height); 
    } 
} 

    BrowserFieldConfig config = new BrowserFieldConfig(); 
    config.setProperty(BrowserFieldConfig.ALLOW_CS_XHR, Boolean.TRUE); 
    config.setProperty(BrowserFieldConfig.INITIAL_SCALE, new Float(0.5)); 
    MyFieldManager m=new MyFieldManager(Display.getWidth()/2,Display.getHeight()/2); 
    add(m); 
    BrowserField _browserField = new BrowserField(config); 
    _browserField.addListener(new InnerBrowserListener()); 
    m.add(_browserField);