Reputation: 22066
I am developing one application in which I have set lots of text in LableField
and I want it to make scrollable in simulator 8900. So for that I have taken VerticalFieldManager
and put LableField
into it. I made VerticalFieldManager
scrollable with VERTICAL_SCROLL
and also tried with Manager.VERTICAL_SCROLL
. But still it is not working.
My code
import net.rim.device.api.system.Bitmap;
import net.rim.device.api.system.Display;
import net.rim.device.api.ui.Color;
import net.rim.device.api.ui.Font;
import net.rim.device.api.ui.FontFamily;
import net.rim.device.api.ui.Graphics;
import net.rim.device.api.ui.Manager;
import net.rim.device.api.ui.component.BitmapField;
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;
import net.rim.device.api.ui.decor.BackgroundFactory;
public class AboutM1 extends MainScreen {
public AboutM1() {
((VerticalFieldManager) getMainManager())
.setBackground(BackgroundFactory
.createSolidBackground(0xEDEDED));
VerticalFieldManager TOPVFM = new VerticalFieldManager(USE_ALL_WIDTH);
HorizontalFieldManager TOPHFM = new HorizontalFieldManager(
FIELD_HCENTER | FIELD_VCENTER);
// LabelField toplable = new LabelField("Welcome to");
LabelField toplable = new LabelField("\n Welcome to", FIELD_BOTTOM) {
public void paint(Graphics g) {
g.setBackgroundColor(0xECECEC);
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(Color.RED);
g.clear();
super.paint(g);
}
};
FontFamily fontFamily[] = FontFamily.getFontFamilies();
Font font = fontFamily[1].getFont(FontFamily.CBTF_FONT, 20);
font = fontFamily[1].getFont(Font.BOLD, 25);
toplable.setFont(font);
Bitmap bmp = Bitmap.getBitmapResource("logo36X36.png");
BitmapField imgField = new BitmapField(bmp, FIELD_BOTTOM);
TOPHFM.add(toplable);
TOPHFM.add(imgField);
TOPVFM.add(TOPHFM);
int width = Display.getWidth();
add(TOPVFM);
LabelField Greenline = new LabelField(
"_______________________________________") {
protected void paint(Graphics g) {
int oldColor = g.getColor();
g.setColor(Color.GREEN);
// g.fillRoundRect(0, 0, 50, 5, 7, 7);
g.setColor(oldColor);
super.paint(g);
}
};
add(Greenline);
VerticalFieldManager DescriptionVFM = new VerticalFieldManager(
VERTICAL_SCROLL);
LabelField Description = new LabelField(
"\n asdasdawqwere we r we r we rw er w er wer, groceries, sadfertewrt er te rt ert er t er t er t er t . asdasdasdasdas asd asd werwerewrt er t erter t ert.",
FIELD_HCENTER);
LabelField Description2 = new LabelField(
"\n\n\n About Us \n For customer care \n\n");
/*
* add(Description); add(Description2);
*/
DescriptionVFM.add(Description);
DescriptionVFM.add(Description2);
VerticalFieldManager BottomVFM = new VerticalFieldManager(USE_ALL_WIDTH);
HorizontalFieldManager BottomHFM = new HorizontalFieldManager(
FIELD_VCENTER);
LabelField callus = new LabelField("Call: ", FIELD_VCENTER);
LabelField Number = new LabelField("+91-79-30487400", FIELD_VCENTER) {
protected void paint(Graphics g) {
g.setColor(0x324F85);
// g.fillRoundRect(0, 0, 50, 5, 7, 7);
super.paint(g);
}
};
font = fontFamily[1].getFont(Font.BOLD, 18);
Number.setFont(font);
BottomHFM.add(callus);
BottomHFM.add(Number);
BottomVFM.add(BottomHFM);
// add(BottomVFM);
DescriptionVFM.add(BottomVFM);
add(DescriptionVFM);
}
}
Upvotes: 0
Views: 310
Reputation: 3674
When you add an instance of LabelField
to any FieldManager, you need to add another dummy focusable Field after that.
You can use NullField
in that case. Try something like following:
// fieldManger can be a VerticalFieldManger, HorizontalFieldManger, Manager, etc.
fieldManager.add(new LabelField("An instance of LabelField"));
fieldManager.add(new NullField(NullField.FOCUSABLE);
Upvotes: 3