我有一个带有按钮的垂直字段管理器,下面是一个浏览器字段。问题是,当我在浏览器字段中垂直滚动时,应用程序的整个布局都会随之滚动(!)..我一直看起来像个疯子,但还没有找到任何解决方案。我尝试在应用程序中禁用垂直滚动,但这只会导致无法滚动浏览器字段/主页。
有什么建议么?
谢谢
我有一个带有按钮的垂直字段管理器,下面是一个浏览器字段。问题是,当我在浏览器字段中垂直滚动时,应用程序的整个布局都会随之滚动(!)..我一直看起来像个疯子,但还没有找到任何解决方案。我尝试在应用程序中禁用垂直滚动,但这只会导致无法滚动浏览器字段/主页。
有什么建议么?
谢谢
You can add a VerticalFieldManager
to your MainScreen
and add your BrowserField
to your VerticalFieldManager
. You should set style of VerticalFieldManager
with VERTICAL_SCROLL | VERTICAL_SCROLLBAR
and clear the syle of your MainScreen
希望这段代码对您有所帮助:试试这个;
public class NewsBrowserScreen extends MainScreen implements FieldChangeListener
{
String url="http://www.google.com/news/";
VerticalFieldManager vertical;
BrowserField browserField;
ButtonField click;
public NewsBrowserScreen()
{
createGUI();
}
private void createGUI()
{
click=new ButtonField("Click",Field.FIELD_HCENTER);
click.setChangeListener(this);
add(click);
vertical=new VerticalFieldManager(VERTICAL_SCROLL|VERTICAL_SCROLLBAR|HORIZONTAL_SCROLL|HORIZONTAL_SCROLLBAR)
{
protected void sublayout(int maxWidth, int maxHeight)
{
super.sublayout(Display.getWidth(),250);
setExtent(Display.getWidth(),250);
}
};
vertical.setBackground(BackgroundFactory.createSolidBackground(Color.GREEN));
vertical.setPadding(10, 0, 10, 0);
add(vertical);
}
protected boolean onSavePrompt()
{
return true;
}
public boolean onMenu(int instance)
{
return true;
}
public void fieldChanged(Field field, int context)
{
if(field==click)
{
browserField=new BrowserField();
vertical.add(browserField);
browserField.requestContent(url);
}
}
}
我得到这样的下图;