Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Blackberry BrowserField不适合屏幕_Blackberry_Browserfield - Fatal编程技术网

Blackberry BrowserField不适合屏幕

Blackberry BrowserField不适合屏幕,blackberry,browserfield,Blackberry,Browserfield,我正试图在我的黑莓应用程序中显示一个网站,但浏览器字段小于屏幕高度,我无法将其设置为相同的大小 加载的页面实际上比屏幕小,但该网站是为移动设备设计的,完全适合iphone webview、blabkberry浏览器、firefox和chrome 我的代码如下: manager = new VerticalFieldManager(VerticalFieldManager.VERTICAL_SCROLL | VerticalFieldManager.HORIZONTAL_SCROLL)

我正试图在我的黑莓应用程序中显示一个网站,但浏览器字段小于屏幕高度,我无法将其设置为相同的大小

加载的页面实际上比屏幕小,但该网站是为移动设备设计的,完全适合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);
我得到的效果如下:当我加载此屏幕时,孔屏幕为红色(管理器背景)。之后,屏幕变成白色(我认为这是browserfield),然后当网页加载时,屏幕再次变成红色,白色部分缩小到一行高度,并随着网页元素开始显示而增长。问题在于,页面应该适合所有屏幕,就像在iphone和自定义浏览器中一样


OBS:我正在使用blackberry操作系统版本6

尝试子布局传球显示。getHeight()而不是f maxHeight

尝试子布局传球显示。getHeight()而不是f maxHeight

尝试如下:

protected void sublayout(int maxWidth, int maxHeight)
{
     super.sublayout(Display.getWidth(), Display.getHeight());
     setExtent(Display.getWidth(), Display.getHeight());
}
试着这样做:

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

我不知道我的解决方案是否对您有帮助,但我遇到了与您完全相同的问题,在花了几个小时之后,我最终通过在html页面的页眉部分添加以下行来修复它:

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


Height=device Height修复了我的问题

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

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

高度=设备高度修复了我的问题

此html代码:

可以在客户端上用以下内容替换:

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);
此代码以html格式显示:

可以在客户端上用以下内容替换:

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);
试试这个

   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);
试试这个

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

嗨,谢谢你的帮助,但我已经试过了,这不是解决办法。按照我对问题的描述,我试图告诉您问题不在管理器中,因为孔屏幕是红色的(管理器背景)。您好,谢谢您的帮助,但我已经尝试过了,这不是解决方案。按照我对问题的描述,我试图告诉您问题不在管理器中,因为孔屏幕是红色的(管理器背景)。感谢您的帮助,但我已经尝试过这不是解决方案。我这里有一个browserfield的问题,经理工作得很好,因为孔屏幕是红色的(红色是经理背景)。谢谢你的帮助,但我已经尝试过了,这不是解决方案。我这里有一个browserfield的问题,经理工作得很好,因为孔屏幕被涂成了红色(红色是经理背景)。非常感谢!正是我需要的。我有视口宽度,甚至没有考虑高度。再次感谢大家!!!!非常感谢你!正是我需要的。我有视口宽度,甚至没有考虑高度。再次感谢大家!!!!