2011-12-16 206 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);