【问题标题】:Codenameone WebBrowser component hiding tabs when tab titles are left alignedCodenameone WebBrowser 组件在选项卡标题左对齐时隐藏选项卡
【发布时间】:2015-12-16 12:06:16
【问题描述】:

当我有一个选项卡组件,其中一个选项卡位于屏幕左侧,并且其中一个选项卡包含一个 WebBrowser 组件(在具有 BorderLayout 的容器内)时,选项卡磁贴(和图标)隐藏在选项卡之后的选项卡上包含 WebBrowser 组件。

这在模拟器和 Android 版本中可以看到 - IOS 版本很好。

基本上,WebBrowser 太宽并覆盖了选项卡。

代码示例:

Form f = new Form();

f.setLayout(new BorderLayout());

Tabs tabs = new Tabs();
tabs.setTabPlacement(Component.LEFT);

f.addComponent(BorderLayout.CENTER, tabs);

tabs.addTab("Tab 1", new Label("Label for tab 1"));

WebBrowser wb = new WebBrowser();
wb.setPage("<h1>Web Browse Tab 2", null);

tabs.addTab("Tab 2", wb);
tabs.addTab("Tab 3", new Label("Label for tab 2"));

f.show();

Tab 2 Tab 3

【问题讨论】:

    标签: tabs size codenameone


    【解决方案1】:

    您可以在将 Web 浏览器放入选项卡之前将其包装在 BorderLayout 容器中。

    此外,标签需要添加容器,而不是标签或任何其他组件

    你可以这样做:

        Form f = new Form(new BorderLayout());
        Tabs tab = new Tabs(Component.LEFT);
        f.addComponent(BorderLayout.CENTER, tab);
        tab.addTab("Tab 1", encloseIn(new BoxLayout(BoxLayout.Y_AXIS), new Label("Label for tab 1")));
        WebBrowser wb = new WebBrowser();
        wb.setPage("<h1>Web Browse Tab 2", null);
        tab.addTab("Tab 2", BorderLayout.center(wb));
        tab.addTab("Tab 3", encloseIn(new BoxLayout(BoxLayout.Y_AXIS), new Label("Label for tab 2")));
    

    【讨论】:

    • 不好!尝试将 WebBrowser 包装在具有 BorderLayout 的容器中,但仍然存在同样的问题。
    • 在将标签添加到标签之前,您是否也在容器中添加了标签?
    • wb.setPage("&lt;h1&gt;Web Browse Tab 2", null); 缺少 &lt;h1&gt; 的结束标记 &lt;/h1&gt;。会是这样吗?
    • 刚检查过还是不行。上面的代码只是我在我编写的应用程序中看到的问题的一个简单示例,该应用程序从基于 Web 的系统加载格式良好的 HTML。
    • 我会建议你发布你的完整代码(替换敏感信息),我可以帮你找到问题
    【解决方案2】:

    您应该能够将BrowserComponent 直接放在选项卡中,并且选项卡本身位于表单的中心,因此这应该“正常工作”。

    您似乎做得很好,所以我不确定为什么会发生这种情况。确保您没有定义像 tabsOnTopBool 这样的主题常量。

    如果不存在,则可能是内部 TabsLayout 类没有为侧选项卡留出足够空间的问题。

    【讨论】:

    • Hi Shai,除非默认定义了常量,否则不会设置。该效果仅在 WebBrowser 之后的选项卡中可见,并且看起来 WebBrowser 是全屏宽度(不仅仅是选项卡“视图”的宽度)并且溢出到选项卡标题的右侧。这对我来说不是一个展示停止器,我只会将标签标题放在顶部。很想看到这个问题在某个时候得到解决。
    • 看一下代码,如果 iOS 没问题,我猜这是BrowserComponent 问题。该特定组件的 X 位置可能存在问题,尽管奇怪的是,这个问题会以相同的方式在桌面和 Android 上发生。请使用代码在 github 中提出问题,最好在此处链接 github.com/codenameone/CodenameOne/issues
    猜你喜欢
    • 1970-01-01
    • 2016-09-27
    • 1970-01-01
    • 1970-01-01
    • 2015-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多