Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
减少BlackBerry中HorizontalFieldManager中两个按钮之间的空间_Blackberry_Margins - Fatal编程技术网

减少BlackBerry中HorizontalFieldManager中两个按钮之间的空间

减少BlackBerry中HorizontalFieldManager中两个按钮之间的空间,blackberry,margins,Blackberry,Margins,在Blackberry中,我创建了一个水平字段管理器,并添加了一些小尺寸的按钮,以便在屏幕底部显示工具栏。但我的问题是两个按钮之间的空间太大 我必须减少2个按钮之间的空间,以便我能够在屏幕底部放置至少6个按钮。我使用的是bfmg.setMargin(305,0,0,40)语句 以下是我的代码: BFcontacts = new ButtonField("Cnt") { protected void paint(Graphics graphics) {

在Blackberry中,我创建了一个水平字段管理器,并添加了一些小尺寸的按钮,以便在屏幕底部显示工具栏。但我的问题是两个按钮之间的空间太大

我必须减少2个按钮之间的空间,以便我能够在屏幕底部放置至少6个按钮。我使用的是
bfmg.setMargin(305,0,0,40)
语句

以下是我的代码:

BFcontacts = new ButtonField("Cnt")
    { 
      protected void paint(Graphics graphics) 
         {
        //Bitmap contactsbitmap = Bitmap.getBitmapResource("contacts.jpg");
             //graphics.drawBitmap(0, 0, contactsbitmap.getWidth(), contactsbitmap.getHeight(), contactsbitmap, 0, 0);
             graphics.setColor(Color.WHITE);
             graphics.drawText("Cnt",0,0);
         }
    };


    BFcontacts.setMargin(305,0,0,10);//vertical pos,0,0,horizontal pos
    HFM.add(BFcontacts);

    BFmsg = new ButtonField("Msgs")
    { 
      protected void paint(Graphics graphics) 
         {
        //Bitmap msgsbitmap = Bitmap.getBitmapResource("messages.jpg");
             //graphics.drawBitmap(0, 0, msgsbitmap.getWidth(), msgsbitmap.getHeight(), msgsbitmap, 0, 0);
             graphics.setColor(Color.WHITE);
             graphics.drawText("Msgs",0,0);
         }
    };


    BFmsg.setMargin(305,0,0,40);//vertical pos,0,0,horizontal pos : original
    HFM.add(BFmsg);

   add(HFM)

我不确定我是否完全理解你的问题。但是,如果您将所有按钮都放在
HorizontalFieldManager
中,它们都将尝试放在一行中,现在您可以设置
HorizontalFieldManager
的边距,以显示在底部或某个x y位置。然后将此
管理器
添加到您的
HFM
我不确定是否完全理解您的问题。但是,如果您将所有按钮都放在
HorizontalFieldManager
中,它们都将尝试放在一行中,现在您可以设置
HorizontalFieldManager
的边距,以显示在底部或某个x y位置。然后将此
管理器
添加到您的
HFM
设置边距(305,0,0,40)/=顶部、右侧、底部、左侧

边距相对于指定值的最近对象

因此,只要将left值从40减小到更小,就可以在水平场中容纳更多对象

您可能需要使用(Display.getWidth()-(button.getWidth()*numButtons))/numButtons+1来计算偶数左边距间距。

setMargin(305,0,0,40)//=TOP、RIGHT、BOTTOM、left

边距相对于指定值的最近对象

因此,只要将left值从40减小到更小,就可以在水平场中容纳更多对象


您可能需要使用(Display.getWidth()-(button.getWidth()*numButtons))/numButtons+1来计算甚至左边距间距。

您是否尝试过使用自定义管理器,您可以根据自己的选择像这样放置内容

创建此类的对象并向其添加项

class BottomManager extends Manager
     {
         BottomManager()
         {
             super(Manager.NO_VERTICAL_SCROLL);
         }
         protected void sublayout(int width, int height) 
         {
             Field field = getField(0);
             layoutChild(field,Display.getWidth(), Display.getHeight());
             setPositionChild(field,0,0);

             field = getField(1);
             layoutChild(field,Display.getWidth(), Display.getHeight());
             setPositionChild(field,10+getField(0).getWidth(),0);

             field = getField(2);
             layoutChild(field,Display.getWidth(), Display.getHeight());
             setPositionChild(field,10+getField(1).getWidth(),0);

             field = getField(3);
             layoutChild(field,Display.getWidth(), Display.getHeight());
             setPositionChild(field,getField(2).getWidth()+10,0);

             setExtent(Display.getWidth(), 40);
         }
     }

你试过使用自定义管理器吗?你可以按照你的选择像这样放置内容

创建此类的对象并向其添加项

class BottomManager extends Manager
     {
         BottomManager()
         {
             super(Manager.NO_VERTICAL_SCROLL);
         }
         protected void sublayout(int width, int height) 
         {
             Field field = getField(0);
             layoutChild(field,Display.getWidth(), Display.getHeight());
             setPositionChild(field,0,0);

             field = getField(1);
             layoutChild(field,Display.getWidth(), Display.getHeight());
             setPositionChild(field,10+getField(0).getWidth(),0);

             field = getField(2);
             layoutChild(field,Display.getWidth(), Display.getHeight());
             setPositionChild(field,10+getField(1).getWidth(),0);

             field = getField(3);
             layoutChild(field,Display.getWidth(), Display.getHeight());
             setPositionChild(field,getField(2).getWidth()+10,0);

             setExtent(Display.getWidth(), 40);
         }
     }