Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Blackberry - set position of field on the screen?

I want to position my field at specified positions.

like image 971
Bohemian Avatar asked Dec 29 '22 11:12

Bohemian


1 Answers

basically to set any field position amoung the manager, you shoud:

  1. override sublayout
    • set layoutChild for each field in manager
    • set setPositionChild for each field in manager
    • use setExtend to size manager properly

removed dead ImageShack link

Code of extanded manager:

class CustomVerticalManager extends VerticalFieldManager {
 LabelField mText1 = new LabelField("top");
 LabelField mText2 = new LabelField("bottom");

 public CustomVerticalManager() {
  add(mText1);
  add(mText2);
 }

 public int getPreferredHeight() {
  return Display.getHeight();
 }

 public int getPreferredWidth() {
  return Display.getWidth();
 }

 protected void sublayout(int width, int height) {
  width = getPreferredWidth();
  height = getPreferredHeight();

  int fieldWidth = mText1.getPreferredWidth();
  int fieldHeight = mText1.getPreferredHeight();
  layoutChild(mText1, fieldWidth, fieldHeight);
  int xPos = (width - fieldWidth) >> 1;
  int yPos = 0;
  setPositionChild(mText1, xPos, yPos);

  fieldWidth = mText2.getPreferredWidth();
  fieldHeight = mText2.getPreferredHeight();
  layoutChild(mText2, fieldWidth, fieldHeight);
  xPos = (width - fieldWidth) >> 1;
  yPos = height - fieldHeight;
  setPositionChild(mText2, xPos, yPos);
  setExtent(width, height);
 }
}

Sample of use:

class Scr extends MainScreen {
 CustomVerticalManager mManager = new CustomVerticalManager();

 public Scr() {
  add(mManager);
 }
}

See also
Wireless - How to : Create a custom layout manager for a screen
Blackberry - fields layout animation

like image 189
Maksym Gontar Avatar answered Jan 13 '23 12:01

Maksym Gontar