Frage

Ich hatte einen HorizontalFieldManager & hinzugefügt BitmapFields, dass erstellt.

Blackberry Storm, Display.getWidth () ist 480., dass ich zum ersten Mal 450 bis verwenden möchten einige BitmapFields bei LHS-Bildschirm hinzufügen, die ich zur Laufzeit m & Erstellung hinzufügen 2 BitmapFields beim Start bei RHS von Screen.

2 BimapFields, die ich am Anfang r in Constructor & anderen BitmapFields hinzugefügt zeigen will, das ich während der Laufzeit r hinzugefügt anschliessend wie ..

m die Schaffung
class MyCanvas extends MainScreen
{

  MyCanvas()
  {

       hfm_BitmapField = new HorizontalFieldManager(){
             protected void sublayout(int maxWidth, int maxHeight) {
             super.sublayout(maxWidth, maxHeight);
             setExtent(Display.getWidth()-30, 60);
             }
         };


         startBitmap = Bitmap.getBitmapResource("start.png");
         startBitmapField = new BitmapField(startBitmap, BitmapField.ACTION_INVOKE |            BitmapField.FIELD_HCENTER | BitmapField.FIELD_RIGHT);
         hfm_BitmapField.add(startBitmapField);

         endBitmap = Bitmap.getBitmapResource("end.png");
         endBitmapField = new BitmapField(endBitmap, BitmapField.ACTION_INVOKE |            BitmapField.FIELD_HCENTER | BitmapField.FIELD_RIGHT);
         hfm_BitmapField.add(endBitmapField);

         drawBitmap();
 }


 public void drawBitmap()
 {
      bitmap[i] = new Bitmap(50, 50);
      Graphics g = new Graphics(bitmap[i]);
      g.drawLine(5,5,25,25);
      bitmapField[i] = new BitmapField(bitmap[i]);

      synchronized(UiApplication.getEventLock()) { hfm.add(bitmapField[i]); }
 }  

Ich möchte startBitmapField & endBitmapField bei RHS & Bitmap [i], die ich zur Laufzeit bei LHS von HorizontalFieldManagers m zu schaffen.

Ich bin zu denken 2 HorizontalFieldManagers hinzuzufügen. 1 für Bitmap [i] & 1 für startBitmapField & endBitmapField. Aber, wie man hinzufügen 2 HorizontalFieldManagers oder andere FieldManagers in einer Reihe?

Jede Lösung? Wie es zu tun?

War es hilfreich?

Lösung

können Sie legen Sie die 2 Horizontalfeldmanager in einem anderen HorizontalFieldManager.

Andere Tipps

Anstatt Gebrauch die Ausrichtung Flaggen Versuchen Sie, auf Ihre sublayout Methode.

Für jedes Kind von Ihrem Manager (HFM) müssen Sie Anruf setPositionChild. Also, wenn Sie es richtig ausgerichtet werden sollen und vertikal zentriert Sie möchten, dass etwas tun:

setPositionChild (DeleteButton, hfm.getPreferredWidth () - deleteButton.getPreferredWidth (), (hfm.getPreferredHeight () / 2) - (deleteButton.getPreferredHeight () / 2));

Dies würde die linke obere Ecke des Löschtaste gesetzt an der richtigen Stelle zu sein, so dass es richtig ausgerichtet ist und vertikal innerhalb des HFM zentriert ist.

Es wird ein Problem sein, wenn Sie die Anwendung in Verbindung zu sehen. Sie müssen jede Ihrer individuellen Feld in einem separaten Feld Manager müssen mit Berührungsereignis zu vermeiden. Wenn Sie layoutChild statt super.sublayout (Breite, Höhe) verwenden, wird dies die Navigation auf dem Bildschirm deaktivieren, so vermeiden Sie es. Verwenden navigationMovement auf Ihre Navigation Ihrer Felder anpassen. Mehr:. Wenn Sie es Layout einige Ihrer Felder nicht super.sublayout Funktion verwenden, möglicherweise nicht, daher wird empfohlen, dass Sie es verwenden

Mehr:. Verwendung Sturm Emulator für alle Ihre Touch-basierte Anwendung und 4,5 Perle Emulator JDEs für alle anderen Versionen, für die Kompatibilitätsprobleme

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top