【问题标题】:How to limit the width of a SeparatorField to a fixed value?如何将 SeparatorField 的宽度限制为固定值?
【发布时间】:2011-04-14 23:45:10
【问题描述】:

我有一个 VerticalFieldManager,其中包含两个由 SeparatorField 分隔的普通字段。第二个字段比第一个大得多,因此 VFM 向上/向下和向右/向左滚动。

当我不添加 SeparatorField 时,VFM 上的滚动按预期工作 - 我永远无法滚动(垂直或水平)超过第二个字段的内容。

但是,当我添加 SeparatorField(使用默认构造函数)时,它似乎使分隔符无限宽 - 我可以无限向右滚动,远远超过第二个字段的内容,我似乎永远无法到达分隔符的结尾。

如何告诉 SeparatorField 仅根据第二个字段的内容尽可能宽?我尝试在 SeparatorField 上覆盖 getPreferredWidth(),但这似乎没有效果.

【问题讨论】:

    标签: blackberry field


    【解决方案1】:

    我自己没有这样做,但我怀疑覆盖 layout(int, int) 应该这样做。
    类似:

    public static int MAX_WIDTH=20;
    protected void layout(int maxWidth, int maxHeight) {
        super.layout(maxWidth, maxHeight);
        this.setExtent(Math.min(this.getWidth(), MAX_WIDTH), this.getHeight());
    }
    

    【讨论】:

    • 这似乎没有效果 - 分隔符仍然无限宽。
    【解决方案2】:

    好吧,我对这个问题的解决方案是完全抛弃SeparatorField,并在paint()方法中画出它需要去的地方。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-17
      • 2022-01-19
      • 1970-01-01
      • 2018-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多