【问题标题】:Codename one - scrollable layout restrictions代号一 - 可滚动布局限制
【发布时间】:2018-01-07 02:55:14
【问题描述】:

我已经完成了我自己的 PropertyCross 演示版本(在他们的演示部分提供)。

我目前面临的问题是“最近搜索”区域的大小。虽然我有一个不可滚动的容器,但我可以轻松定义首选高度。由于 Box Layout 遵循首选尺寸,一切都很好,只是无法滚动它并看到多个结果的小问题:

recentSearchContainer = new Container(new BoxLayout(BoxLayout.Y_AXIS)); recentSearchContainer.setPreferredH((int)(this.getContentP‌​ane().getHeight() * 0.1f));

一旦我将容器设置为可滚动,首选高度将被覆盖并占用所需的空间,从其上方的 BorderLayout Center 部分占用太多空间。

如何操作可滚动组件的首选大小?

【问题讨论】:

    标签: layout codenameone scrollable


    【解决方案1】:

    您不会操纵首选尺寸。可滚动占用更多空间,因此如果您需要它们占用特定数量的空间,您需要使用正确类型的布局,在这种情况下可能不是边框布局...

    边框布局为 NORTH/SOUTH 元素提供了它们的首选高度,这可能不是您想要的。您可能需要一个将高度划分为 50/50 的网格布局。您可能需要一个表格布局,您可以在其中以百分比等方式定义高度。

    【讨论】:

      【解决方案2】:

      对于那些感兴趣的人,这里是解决方案:

      1. 设置一个单列和任意多行的表格布局(类似于盒子布局 y 轴或边框布局,只有北、中和南)。

      2. 将表格布局设置为不可滚动,使其默认为屏幕的 100%。

      3. 添加组件,其高度应占屏幕的 %。

      4. 这些组件可以滚动并且仍然会遵守高度限制!

        // inside a form object, setup the layout
        TableLayout tl = new TableLayout(3, 1);
        tl.setGrowHorizontally(true);
        setScrollable(false);
        setLayout(tl);
        ...
        // and add stuff to it
        add(tl.createConstraint().heightPercentage(15), labelDesc);
        add(tl.createConstraint().heightPercentage(50), compGroup);
        add(tl.createConstraint().heightPercentage(35), recentSearchContainer);
        

      像魅力一样工作!

      【讨论】:

        猜你喜欢
        • 2016-12-02
        • 2021-06-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-06-28
        • 2018-09-15
        相关资源
        最近更新 更多