LabelField不在os6和os7设备上显示(仅在os5上)

时间:2012-06-04 09:44:00

标签: blackberry blackberry-simulator

我有以下labelfield,我希望可以点击,并捕捉/处理其焦点/非聚焦事件。

titleField = new LabelField(title,FOCUSABLE|USE_ALL_WIDTH){
            public void paint(Graphics graphics)
            {
                graphics.setColor(Color.BLUE);
                graphics.drawText(_title, 30,0);
                super.paint(graphics);
            }

             protected boolean navigationClick(int status,int time)
                {
                    if(panel != null) panel.takeAction();
                    return true;
                }

                protected void onFocus(int dir)
                {
                    super.onFocus(dir);
                    panel.setSelectedIndex(_index); 
                }

                protected void onUnfocus()
                {
                    if(!_collapse){
                    _prevIndex = _index;
                    panel.setPreviousSelectedIndex(_prevIndex);
                    }
                }
        };

到目前为止,代码在我的os5模拟器上按预期工作,但在os6 / 7模拟器上,labelfields只显示为空白(我甚至尝试删除super.paint(图形);调用但仍然得到相同的结果)。有什么想法发生了什么?感谢

2 个答案:

答案 0 :(得分:2)

我建议您每次更改drawText字段时删除setText并拨打_title标签。

我也看到你没有打电话给super.onUnfocus()它会引起重画问题。

答案 1 :(得分:1)

我想通了......实际上在我的布局中(水平)我有一个checkboxfield然后是一个labelfield ..由于一些奇怪的原因,即使我没有指定,也会在os6 / 7模拟器上占用所有水平空间USE_ALL_WIDTH。通过覆盖布局并指定checkbox字段的尺寸,布局现在正常运行。感谢您的提示:)