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