为什么我的浏览器组件以小宽度显示?



我在容器中有一个浏览器组件。然后将此容器添加到选项卡中。浏览器组件显示来自 url 或本地存储的 html。 在模拟器上似乎还可以,但在Iphone上,它以非常小的宽度显示。

下面是添加到选项卡中的容器的代码,我将浏览器组件放入其中。

public class MemberDetail extends Container {
// private Form MembersList = null;
public MemberDetail( String dataUri, Form MembersList) throws IOException {
BrowserComponent browser = new BrowserComponent();
if ( dataUri.startsWith("http") ) {
browser.setURL( dataUri );
}
else {
String html = Util.readToString( Storage.getInstance().createInputStream( dataUri ) );
browser.setPage( html , "/");
}
browser.getUnselectedStyle().setMargin(0, 0, 0, 0);
browser.getPressedStyle().setMargin(0, 0, 0, 0);
browser.getDisabledStyle().setMargin(0, 0, 0, 0);
this.add( browser );
}     
}

这是选项卡的代码

public MemberGui(com.codename1.ui.util.Resources resourceObjectInstance, String companyName, String logo, String profile, String actions, String galleryUrl, Form membersList) {
try {
this.membersList = membersList;
initGuiBuilderComponents(resourceObjectInstance);
Image imLogo = EncodedImage.create( Storage.getInstance().createInputStream( logo ) );
if ( imLogo != null) {
this.gui_Label_Logo.setIcon( imLogo );
}
Style s = this.createStyle();
this.gui_Border_MemberDetails.add(BorderLayout.CENTER,  this.getTab(profile, actions, galleryUrl, membersList, s ));
} catch (IOException ex) {
Log.e( ex);
}
}
private Tabs getTab( String profile, String action, String galleryUrl,  Form membersList, Style s) {
Tabs t = new Tabs();
try {
t.addTab("Η εταιρεία", FontImage.createMaterial(FontImage.MATERIAL_HOME,s) , new MemberDetail( profile, membersList ) );
if ( action != "") {
t.addTab("Δράση", FontImage.createMaterial(FontImage.MATERIAL_PIN_DROP,s), new MemberDetail( action, membersList ) );
}
if ( galleryUrl != "") {
t.addTab("Φωτογραφίες", FontImage.createMaterial(FontImage.MATERIAL_COLLECTIONS,s), new MemberDetail( galleryUrl, membersList )  );
}
} catch (IOException ex) {
Log.e(ex);
}
return t;
}
private Style createStyle()
{
Style s = new Style();
s.setBorder( Border.createLineBorder(1, 000000) );
s.setAlignment( CENTER );
return s;
}

任何帮助不胜感激。

MemberDetail的默认布局是FlowLayoutFlowLayout赋予组件其自然尺寸(首选尺寸(。

HTML的首选大小不可靠,因为加载 HTML 需要一段时间。无论如何,解决方案很简单。将浏览器组件放置在确定其大小的布局位置,特别是在边框布局的中心或类似的地方。

最新更新