首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BlackBerry HorizontalFieldManager对齐

BlackBerry HorizontalFieldManager对齐
EN

Stack Overflow用户
提问于 2010-11-15 17:33:40
回答 3查看 5.4K关注 0票数 3

在水平方向上,我想显示两个位图,并且在它们之间显示一个标签字段。代码看起来很简单,但是所有的字段都添加在屏幕的左侧。

代码语言:javascript
复制
HorizontalFieldManager hfm = new HorizontalFieldManager();

callbmp = new BitmapField(ei.getBitmap(),Field.FOCUSABLE |BitmapField.FIELD_LEFT);
LabelField NAME = new LabelField("mylable", LabelField.FIELD_HCENTER);
mailbmp = new BitmapField(mail.getBitmap(),Field.FOCUSABLE|BitmapField.FIELD_RIGHT);
hfm.add(callbmp);
hfm.add(NAME);
hfm.add(mailbmp);
add(hfm);
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-11-15 20:28:06

HorizontalFieldManager按照字段添加的顺序从左到右排列字段。忽略水平布局的样式位。

如果你想在一条水平线上左右居中,你需要一个自定义的管理器。

票数 4
EN

Stack Overflow用户

发布于 2010-12-15 18:57:05

代码语言:javascript
复制
 Manager customManager = new Manager(0)
 {
     protected void sublayout(int width, int height) {
         setPositionChild(
             getField(0), 
             0, 
             0);
         layoutChild(
             getField(0), 
             getField(0).getPreferredWidth(), 
             getField(0).getPreferredHeight());

         setPositionChild(
             getField(1), 
             Graphics.getScreenWidth()/2 - getField(1).getPreferredWidth()/2, 
             0);
         layoutChild(
             getField(1), 
             getField(1).getPreferredWidth(), 
             getField(1).getPreferredHeight());    

         setPositionChild(
             getField(2), 
             Graphics.getScreenWidth() - getField(2).getPreferredWidth(), 
             0);
         layoutChild(
             getField(2), 
             getField(2).getPreferredWidth(), 
             getField(2).getPreferredHeight());    

         setExtent(width, height);
     }      
 };

 customManager.add(new BitmapField(Bitmap.getBitmapResource("image1.png")));
 customManager.add(new LabelField("Hello Alignment"));
 customManager.add(new BitmapField(Bitmap.getBitmapResource("image2.png")));
票数 6
EN

Stack Overflow用户

发布于 2012-10-16 16:54:53

这应该是你的需求:

只需在水平场管理器上减去要添加的项的宽度即可。默认情况下,leftButton或您在HFM上添加的第一个项目将添加在左侧。然后,您可以通过以下方式添加标签(userName)和rightButton

代码语言:javascript
复制
LabelField userName = new LabelField("MaheshBabu");
HorizontalFieldManager horizontalBar = new HorizontalFieldManager(USE_ALL_WIDTH|Manager.NO_HORIZONTAL_SCROLL|Manager.NO_HORIZONTAL_SCROLLBAR);
horizontalBar.setBackground(BackgroundFactory.createSolidBackground(Color.BLACK));

rightButton.setMargin(0, 0, 0, Display.getWidth()-rightButton.getPreferredWidth()-leftButton.getPreferredWidth()-userName.getPreferredWidth());

horizontalBar.add(leftButton);
horizontalBar.add(userName);
horizontalBar.add(rightButton);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4183026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档