1

ブラックベリー アプリ内に Web サイトを表示しようとしていますが、ブラウザ フィールドが画面の高さよりも小さく、同じサイズにできません。

読み込まれているページは実際には画面よりも小さいですが、ウェブサイトはモバイル デバイス用に設計されており、iPhone の WebView、Blabkberry ブラウザ、Firefox、Chrome に完全に適合します。

私のコードは次のとおりです。

    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);

私が得た効果は次のとおりです。この画面をロードすると、ホール画面が赤くなります (マネージャーの背景)。その後、画面が白くなり(これはブラウザフィールドだと思います)、Webページが読み込まれると画面が再び赤くなり、白い部分が行の高さまで縮小し、Webページの要素が表示され始めると大きくなります. 問題は、iPhone やカスタム ブラウザーの場合と同様に、ページが画面全体に収まる必要があることです。

OBS: ブラックベリー OS バージョン 6 を使用しています

4

5 に答える 5

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);
于 2012-10-19T06:44:29.737 に答える
4

私の解決策があなたに役立つかどうかはわかりませんが、あなたとまったく同じ問題に直面しました.何時間も費やした後、htmlページのヘッダーセクションに次の行を追加して最終的に修正しました:

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

Height=device-height は私の問題を修正しました

于 2012-03-14T13:32:47.547 に答える
1

このようにしてみてください:

protected void sublayout(int maxWidth, int maxHeight)
{
     super.sublayout(Display.getWidth(), Display.getHeight());
     setExtent(Display.getWidth(), Display.getHeight());
}
于 2011-12-17T06:22:11.317 に答える
0

代わりに Display.getHeight() を渡すサブレイアウトで試してください f maxHeight

于 2011-12-16T20:43:07.483 に答える
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);
于 2012-12-13T10:14:53.030 に答える