如何将水平滚动设置为水平字段管理器

时间:2013-06-06 07:53:27

标签: user-interface blackberry horizontal-scrolling

以下代码段包含一个水平字段管理器,其中添加了五个按钮。

1。我无法将水平滚动设置为水平字段管理器,因此我无法访问按钮4和按钮5.

2。通常我们按以下方式设置水平滚动

horizontalFieldManager = 
    new HorizontalFieldManager(USE_ALL_WIDTH|HorizontalFieldManager.FIELD_LEFT|HORIZONTAL_SCROLL);

但是因为我在水平字段管理器的构造函数中添加了按钮,所以我无法使用它。

3。我找到了这个属性:horizontalFieldManager.setHorizontalScroll(position); 其中包含Parameter:position,其中position应该是新的水平滚动位置。我尝试传递水平字段管理器的x坐标,但它不起作用。我应该以{{1​​}}参数传递什么?

position

1 个答案:

答案 0 :(得分:0)

Horizo​​ntalFieldManager构造函数

如果您只是更改调用HorizontalFieldManager构造函数的方式,请执行以下操作:

HorizontalFieldManager container = new HorizontalFieldManager() {
    protected void sublayout(int maxWidth, int maxHeight) {   

到此:

HorizontalFieldManager container = 
    new HorizontalFieldManager(Manager.HORIZONTAL_SCROLL | Manager.HORIZONTAL_SCROLLBAR) {

    protected void sublayout(int maxWidth, int maxHeight) {   

然后,你将能够水平滚动,并达到所有五个按钮。


sublayout()

sublayout()方法中,您似乎正在按照HorizontalFieldManager通常的方式布置字段。所以,我认为添加该代码没有任何意义。只需这样做:

HorizontalFieldManager container = 
   new HorizontalFieldManager(Manager.HORIZONTAL_SCROLL | Manager.HORIZONTAL_SCROLLBAR);

ButtonField button1 = new ButtonField("Button1");
/* the rest of your code is the same */

如果您以后想要控制按钮之间的间距,请使用边距进行操作:

  ButtonField button1 = new ButtonField("Button1");
  button1.setMargin(10, 10, 10, 10);
  ButtonField button2 = new ButtonField("Button2");
  button2.setMargin(10, 10, 10, 10);

一般情况下,使用HorizontalFieldManagerVerticalFieldManager覆盖sublayout()通常不是一个好主意。如果你真的想要那里的自定义行为,你应该直接用你自己的子类扩展Manager