2010-12-11 49 views

回答

5

那么如果你只是想要的东西快速和肮脏的,这个应该做的工作:

LabelField lField = new LabelField("text") 
    { 
     protected void layout(int width, int height) { 
      super.layout(width, height); 
      this.setExtent(HARD_CODED_WIDTH, this.getHeight()); 
     } 
    }; 

但要做到这一点是选择正确的方式(或写)布局管理器,你想要做一些什么灵活性来解决不同的屏幕尺寸和其他事情。 RIM在编写自己的经理时有一些体面的样本。搜索JustifiedEvenlySpacedHorizo​​ntalFieldManager。或者看看思考黑莓:http://www.thinkingblackberry.com/archives/116

+0

该网址无效。我在这里找到了一个例子http://code.google.com/p/blackberry-douban-radio/source/browse/trunk/DoubanRadio/src/fm/douban/component/JustifiedEvenlySpacedHorizo​​ntalFieldManager.java?r=3。它是一样的吗? – 2012-12-09 22:07:02

1

cjp的答案是正确的,但我增加了更多。

如果你的文本长度是越来越得到与上面的代码削减,那么你可以像下面的代码:

LabelField lField = new LabelField("text") 
{ 
    protected void layout(int width, int height) { 
     super.layout(width, height); 
     this.setExtent(HARD_CODED_WIDTH, this.getHeight()); 
    } 
    public int getPreferredWidth() { 
    return HARD_CODED_WIDTH; 
} 
}; 

上面的代码将不会削减该文本,如果文本长度更那么你有宽度定义。在这种情况下,文本到达下一行。

希望你明白了。