Campo de rolagem do navegador apenas para Blackberry, não o layout inteiro do aplicativo
-
27-10-2019 - |
Pergunta
Eu tenho um gerenciador de campo vertical com botões e abaixo dele um campo de navegador.O problema é que quando eu rolar verticalmente no campo do navegador, todo o layout do aplicativo rola com ele (!). Estou parecendo um louco por causa de uma solução, mas ainda não encontrei nada.Tentei desativar a rolagem vertical no aplicativo, mas isso só resultou em não ser possível rolar o campo do navegador / página inicial.
Alguma sugestão?
Obrigado
Solução
Espero que este código o ajude: tente isto;
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);
}
}
}
Eu fico assim abaixo da imagem;
Outras dicas
Você pode adicionar um VerticalFieldManager
ao seu MainScreen
e adicionar seu BrowserField
ao seu VerticalFieldManager
.Você deve definir o estilo de VerticalFieldManager
com VERTICAL_SCROLL | VERTICAL_SCROLLBAR
e limpar o estilo de seu MainScreen