首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > BlackBerry >

[急]黑莓向可滚动的VerticalFieldManager添加ButtonField,导致屏幕错误

2012-12-26 
[急]黑莓向可滚动的VerticalFieldManager添加ButtonField,导致屏幕异常package com.testimport net.rim.d

[急]黑莓向可滚动的VerticalFieldManager添加ButtonField,导致屏幕异常


package com.test;

import net.rim.device.api.system.Display;
import net.rim.device.api.ui.Color;
import net.rim.device.api.ui.Field;
import net.rim.device.api.ui.FieldChangeListener;
import net.rim.device.api.ui.Graphics;
import net.rim.device.api.ui.Manager;
import net.rim.device.api.ui.component.ButtonField;
import net.rim.device.api.ui.container.HorizontalFieldManager;
import net.rim.device.api.ui.container.MainScreen;
import net.rim.device.api.ui.container.VerticalFieldManager;

public class ManagerScreen extends MainScreen {

private VerticalFieldManager bodyManager,b1,b2,b3,b4,b5,b6;
private ButtonField bt1,bt2,bt3,bt4,bt5,bt6;
private ButtonField bt11,bt22,bt33,bt44,bt55,bt66;
private int i;

public ManagerScreen() {
HorizontalFieldManager t = new HorizontalFieldManager(){
protected void paintBackground(Graphics g) {
// TODO Auto-generated method stub
g.setColor(Color.GRAY);
g.fillRect(0, 0, Display.getWidth(), Display.getHeight()/4/2);
super.paintBackground(g);
}
protected void sublayout(int maxWidth, int maxHeight) {
// TODO Auto-generated method stub
maxWidth = Display.getWidth();
maxHeight = Display.getHeight()/4/2;
super.sublayout(maxWidth, maxHeight);
setExtent(maxWidth, maxHeight);
}
};

HorizontalFieldManager f = new HorizontalFieldManager(){
protected void paintBackground(Graphics g) {
// TODO Auto-generated method stub
g.setColor(Color.GRAY);
g.fillRect(0, 0, Display.getWidth(), Display.getHeight()/4/2);
super.paintBackground(g);
}
protected void sublayout(int maxWidth, int maxHeight) {
// TODO Auto-generated method stub
maxWidth = Display.getWidth();
maxHeight = Display.getHeight()/4/2;
super.sublayout(maxWidth, maxHeight);
setExtent(maxWidth, maxHeight);
}
};

bodyManager = new VerticalFieldManager(Manager.VERTICAL_SCROLL|Manager.VERTICAL_SCROLLBAR){
protected void sublayout(int maxWidth, int maxHeight) {
// TODO Auto-generated method stub
maxWidth = Display.getWidth();
maxHeight = Display.getHeight()-Display.getHeight()/4;
super.sublayout(maxWidth, maxHeight);
setExtent(maxWidth, maxHeight);
}
};
bt1 = new ButtonField("bt1",ButtonField.CONSUME_CLICK);
bt11 = new ButtonField("bt11",ButtonField.CONSUME_CLICK);
bt2 = new ButtonField("bt2",ButtonField.CONSUME_CLICK);
bt22 = new ButtonField("bt22",ButtonField.CONSUME_CLICK);
bt3 = new ButtonField("bt3",ButtonField.CONSUME_CLICK);
bt33 = new ButtonField("bt33",ButtonField.CONSUME_CLICK);
bt4 = new ButtonField("bt4",ButtonField.CONSUME_CLICK);
bt44 = new ButtonField("bt44",ButtonField.CONSUME_CLICK);
bt5 = new ButtonField("bt5",ButtonField.CONSUME_CLICK);
bt55 = new ButtonField("bt55",ButtonField.CONSUME_CLICK);
bt6 = new ButtonField("bt6",ButtonField.CONSUME_CLICK);
bt66 = new ButtonField("bt66",ButtonField.CONSUME_CLICK);


bt1.setChangeListener(new FieldChangeListener() {
public void fieldChanged(Field field, int context) {
b1.add(bt11);
}
});
bt11.setChangeListener(new FieldChangeListener() {
public void fieldChanged(Field field, int context) {
b2.add(bt2);
}
});
bt2.setChangeListener(new FieldChangeListener() {
public void fieldChanged(Field field, int context) {
b2.add(bt22);
}
});
bt22.setChangeListener(new FieldChangeListener() {
public void fieldChanged(Field field, int context) {
b3.add(bt3);
}
});
bt3.setChangeListener(new FieldChangeListener() {
public void fieldChanged(Field field, int context) {
b3.add(bt33);
}
});
bt33.setChangeListener(new FieldChangeListener() {
public void fieldChanged(Field field, int context) {
b4.add(bt4);
}
});
bt4.setChangeListener(new FieldChangeListener() {
public void fieldChanged(Field field, int context) {
b4.add(bt44);
}
});
bt44.setChangeListener(new FieldChangeListener() {
public void fieldChanged(Field field, int context) {
b5.add(bt5);
}
});
bt5.setChangeListener(new FieldChangeListener() {
public void fieldChanged(Field field, int context) {
b5.add(bt55);
}
});
bt55.setChangeListener(new FieldChangeListener() {
public void fieldChanged(Field field, int context) {
b6.add(bt6);
}
});
bt6.setChangeListener(new FieldChangeListener() {
public void fieldChanged(Field field, int context) {
b6.add(bt66);
}
});
i = 0;
bt66.setChangeListener(new FieldChangeListener() {
public void fieldChanged(Field field, int context) {
b6.add(new ButtonField("new "+i));
i++;
}
});

b1 = new VerticalFieldManager();
b1.add(bt1);
b2 = new VerticalFieldManager();
b3 = new VerticalFieldManager();
b4 = new VerticalFieldManager();
b5 = new VerticalFieldManager();
b6 = new VerticalFieldManager();

bodyManager.add(b1);
bodyManager.add(b2);
bodyManager.add(b3);
bodyManager.add(b4);
bodyManager.add(b5);
bodyManager.add(b6);

add(t);
add(bodyManager);
add(f);

}
}



我从b1开始逐个往下点,点到b55的时候会出现整个屏幕向上移动的情况...
我不知道怎么改了... 
求各位帮帮忙,谢谢了。
[解决办法]
自己解决了...

在构造的时候加上:
super(Manager.NO_VERTICAL_SCROLL

热点排行