Manager是Srceen排版的类,控制Srceen里Field的位置。相当于android中的垂直布局属性和水平布局属性。只是这里的布局是用一个类来控制的。
Manager有四个子类:
HorizontalFieldManager
VerticalFieldManager
FlowFieldManager
DialogFieldManager
1、HorizontalFieldManager以行为单位,每个Field占一行,相当一列多行,如果内容列数量超出Manage高度,设置了滚动条可滚动显示,否则裁剪。每行从屏幕的最左边开始,结束于最右边,所有水平样式用不到这里的UI控件里,可以应用垂直样式,例如:Field.FIELD_TOP.布局方向也可以通过设置样式来控制,比如设置:Field.RIGHT_TO_LEFT 或者 Field.LEFT_TO_RIGHT
2、VerticalFieldManager以列为单位,每个Field占一列,相当一行多列。内容超宽,没设横向滚动条就被裁剪。每行从屏幕的最上端开始,结束于最下端,所以垂直样式在用不到这里边的UI控件里,可以应用水平样式。
3、FlowFieldManager在一行中从左到右依次排列Field,如果超宽,自动转到下一行。
4、DialogFieldManager专门为Dialog定制的,分上下两部分,上部分水平排列两个Field:bitmap和LabeField,代表Dialog的图标和标题;下部分是客户Field区域,按VerticalFieldManager管理。
Manager的样式:
1、滚动条
VERTICAL_SCROLL:开启垂直滚动
NO_VERTICAL_SCROLL:关闭垂直滚动
HORIZONTAL_SCROLL:开启水平滚动
NO_HORIZONTAL_SCROLL:关闭水平滚动
VERTICAL_SCROLLBAR:开启显示垂直滚动条
NO_VERTICAL_SCROLLBAR:不显示垂直滚动条
HORIZONTAL_SCROLLBAR:开启水平滚动条
NO_HORIZONTAL_SCROLLBAR:关闭水平滚动条
2、Manager内Field对齐方式:
FIELD_TOP:顶对齐
FIELD_VCENTER:垂直中对齐
FIELD_BOTTOM:底对齐
FIELD_LEFT:左对齐
FIELD_HCENTER:水平中对齐
FIELD_RIGHT:右对齐
Screen里的有一个主Manager,它可以嵌套许多个子Mnager,以此形成复杂排版。
1、在添加子Manager时,要逆序添加Field,不然多数情况出错,这因为父Mnager根据子Manager尺寸来决定自己的尺寸,一旦定下就不会更改。如后添加Field到子Manager,超出父Manager的尺寸会出错,尤其父Manager是HorizontalFieldManager时。
2、父Manager的Style可以“遗传”到子Manager去。即父Manager定义的Style同样对子Manager有效,但反过来却不行。
3、要想Scroll滚动有效,Manager里包含的Field必须包括可获得焦点的Field,全是LabelField不起作用。
先来看一个小例子:
只显示两个按钮,一左一右,分别是 Clear 和 Submit
代码如下:
public MyScreen() {
super();
HorizontalFieldManager _managerBottom = new HorizontalFieldManager();
add(_managerBottom);
ButtonField mClearButton = new ButtonField("Clear");
ButtonField mSubmitButton = new ButtonField("Submit");
_managerBottom.add(mClearButton);
_managerBottom.add(mSubmitButton);
}
我们一般都会把这两个按钮居中,其实加一个样式就可以了,相当于android中的layout_gravity。
HorizontalFieldManager _managerBottom = new HorizontalFieldManager(Field.FIELD_HCENTER);
下边这个例子就稍微复杂点,就是为了弄懂这个布局是怎么回事的。
package mypackage;
import net.rim.device.api.ui.Manager;
import net.rim.device.api.ui.component.ButtonField;
import net.rim.device.api.ui.component.LabelField;
import net.rim.device.api.ui.container.HorizontalFieldManager;
import net.rim.device.api.ui.container.MainScreen;
import net.rim.device.api.ui.container.VerticalFieldManager;
/**
* A class extending the MainScreen class, which provides default standard
* behavior for BlackBerry GUI applications.
*/
public final class MyScreen extends MainScreen {
/**
* Creates a new MyScreen object
*/
public MyScreen() {
super();
Manager manS;
manS = this.getMainManager();
HorizontalFieldManager manV = new HorizontalFieldManager(
Manager.FIELD_HCENTER | Manager.HORIZONTAL_SCROLL);
VerticalFieldManager man1 = new VerticalFieldManager();
VerticalFieldManager man2 = new VerticalFieldManager();
HorizontalFieldManager man3 = new HorizontalFieldManager();
VerticalFieldManager man4 = new VerticalFieldManager();
HorizontalFieldManager man5 = new HorizontalFieldManager();
int i;
for (i = 1; i < 13; ++i) {
man2.add(new ButtonField("No" + String.valueOf(i)));
man3.add(new ButtonField("No" + String.valueOf(i)));
man4.add(new LabelField("No" + String.valueOf(i)));
man5.add(new ButtonField("No" + String.valueOf(i)));
}
man1.add(man3);
man1.add(man4);
man1.add(man5);
manV.add(man1);
manV.add(man2);
manS.add(manV);
}
}
- 大小: 2.1 KB
- 大小: 67.1 KB
- 大小: 17.5 KB
- 大小: 17.7 KB
分享到:
相关推荐
NULL 博文链接:https://flyouting.iteye.com/blog/1057314
NULL 博文链接:https://flyouting.iteye.com/blog/1060562
可以选择多个版本的黑莓 桌面管理器 本人已经成功下载并安装了5。0版本的哈
黑莓桌面管理器4.2,适用于blackberryOS5.0以下版本,简洁易操作。
黑莓4.1桌面管理器,老手机必备软件,都失传了。
BlackBerry入门教程---黑莓手机软件安装方法.pdf
BlackBerry入门教程---黑莓手机软件安装方法借鉴.pdf
黑莓 jad<----->cod 转换 alx生成
BlackBerry-UI-guidelines-CHS
长按左边的Alt,并按下S-B-E-B键,按“确定”,打开黑莓桌面管理器,并连接手机。点击左上角的“设备”,选择“恢复”,点击“更改”,弹出来小对话框,选择自己之前存放SB的文件夹,并点击确定。点击下方的“恢复”,...
BlackBerry应用程序开发者指南-基础卷+高级卷(pdf).rar
黑莓手机8830 浏览器 opera-mini-4.4
黑莓4.5黑莓软件管理器,非常实用,要用安装软件安装
blackberry-keyone-user-guide blackberry-keyone-user-guide
BlackBerry_Desktop_Software-User_Guide--1236316-0725104952-001-6.0.0-US.pdf
PlayBook中文说明书,BlackBerry_PlayBook_Tablet-T1526983-1526983-0213114900-011-2.0-ZH.pdf
黑莓最新版桌面管理器7.10,分享给有需要的黑莓迷。