【问题标题】:How do you limit the overall height of a ListField?如何限制 ListField 的整体高度?
【发布时间】:2011-03-28 16:30:26
【问题描述】:

我正在尝试限制 ListField 的高度,这样当您在项目中移动时不会向下移动屏幕,而只会在框内向下移动。因此,例如,屏幕上的标题不会消失。

我当前的解决方案不起作用。高度没有变化。它仍然保持在对象列表的任何大小。我使用的代码是:

_listField = new ListField()
    {
        protected void layout(int w, int h)
        {
            super.layout(w, 100);
        }
    };

【问题讨论】:

  • 您需要包含您遇到问题的 BBOS 版本和设备型号。

标签: user-interface blackberry listfield


【解决方案1】:

你可以这样做。在您的 MainScreen 构造函数中添加

super(NO_VERTICAL_SCROLL);

所以你的主屏幕不会滚动。

创建启用垂直滚动的新管理器,因此只有管理器可以像这样滚动

VerticalFieldManager listManager = new VerticalFieldManager(VERTICAL_SCROLL | VERTICAL_SCROLLBAR); 

现在将你的组件添加到这个管理器中,比如你的 ListField

listManager.add(your listfield object);

如果你想限制listField的高度,那么你可以将限制设置为listManger,并将listfield添加到manager。所以列表将像这样在给定高度的管理器中布局

VerticalFieldManager listManager = new VerticalFieldManager(VERTICAL_SCROLL | VERTICAL_SCROLLBAR); 
{
    protected void sublayout( int maxWidth, int maxHeight )
    {
         int width = Display.getWidth();
         int height = 100;
         super.sublayout( width, height);
         setExtent( width, height);
    }
};

希望这会对你有所帮助。

【讨论】:

    【解决方案2】:

    看看将列表字段放在MainScreen 中。然后你可以将header设置为MainScreen的标题。

    【讨论】:

    • 它在主屏幕中。标题是一张图片,我不想使用标题。
    • “我不想使用标题”并不是拒绝可行解决方案的非常有说服力的理由。
    • 这不是我的问题的可行解决方案吗?我很欣赏这个答案,但这不是我问题的解决方案。我需要 ListField 上的固定高度,而不是重新设计界面。
    • 哦,我能感受到感激。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-22
    • 2015-05-01
    • 1970-01-01
    • 2015-01-12
    • 1970-01-01
    • 2014-11-05
    相关资源
    最近更新 更多