1

我在Screen上添加了一个VerticalFieldManager。我想以这样一种方式处理该管理器上的事件,即它应该设置相对于该管理器首选高度的特定变量值。以下是我的代码片段,请检查。

VerticalFieldManager leftVfm = new VerticalFieldManager(Manager.VERTICAL_SCROLL){

    protected void sublayout(int width, int height) {
        super.sublayout(screenWidth - 150, INFO_HEADER_HEIGHT);
        setExtent(screenWidth - 150, INFO_HEADER_HEIGHT);
    }

    protected boolean touchEvent(TouchEvent message) {
        int eventCode = message.getEvent();
        if (eventCode == TouchEvent.DOWN) {
            // leftheight should be leftVfm.getPreferredHeight();
            INFO_HEADER_HEIGHT = leftheight;
        }
        return true;
    }
};  
4

1 回答 1

0

您的代码中的注释说:

// leftheight should be leftVfm.getPreferredHeight();

因为你想改变高度,使用像 INFO_HEADER_HEIGHT 这样的变量名有点误导,因为全大写的名称表示一个常量,即static final这意味着值不会改变。

一旦你改变了你的高度变量,你只需要强制经理重新布局。最直接的方法是调用 Screen.invalidateLayout()

于 2012-06-07T16:48:53.290 回答