Pergunta

Eu criei um HorizontalfieldManager e adicionei o Bitmapfields a isso.

Em BlackBerry Storm, Display.getWidth () é 480. Em que quero usar o primeiro 450 para adicionar alguns Bitmapfields no LHS de tela que estou criando no tempo de execução e adiciona 2 bitmapfields no início no RHS da tela.

2 bimapfields que eu quero mostrar no início r adicionado no construtor e em outros bitmapfields que estou criando no tempo de execução r adicionado a pós -palavras como ..

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]); }
 }  

Eu quero o startbitmapfield & endbitmapfield no rhs & bitmapfield [i] que estou criando no tempo de execução no LHS of HorizontalfieldManagers.

Estou pensando em adicionar 2 HorizontalfieldManagers. 1 para Bitmapfield [i] e 1 para startbitmapfield & endbitmapfield. Mas como adicionar 2 HorizontalfieldManagers ou qualquer outro gerente de campo seguidos?

Qualquer solução? Como fazer isso?

Foi útil?

Solução

Você pode colocar os 2 gerentes de campo horizontais dentro de outro HorizontalfieldManager.

Outras dicas

Em vez de usar os sinalizadores de alinhamento, tente adicionar ao seu método da subblayout.

Para cada filho do seu gerente (HFM), você precisa chamar o setPositionChild. Então, se você quiser corretamente alinhado e centrado verticalmente, você faria algo como:

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

Isso definiria o canto superior esquerdo do botão Excluir na posição correta, de modo que ele esteja alinhado e centralizado verticalmente no HFM.

Haverá um problema se você vir o aplicativo em contato. Você deve ter cada um de seu campo personalizado em um gerente de campo separado para evitar o uso de eventos de toque. Se você usar o LayoutChild em vez de super.sublayout (largura, altura), isso desativará a navegação na tela; portanto, evite usá -la. Use o NavigationMovement para personalizar sua navegação de seus campos. MAIS: Se você não usa a função Super.Sublayout, ela pode não layout alguns dos seus campos, portanto, é recomendável que você o use.

MAIS: Use o emulador de tempestades para todo o seu aplicativo baseado em toque e 4,5 Pérolas JDES para todos os outros lançamentos, para os problemas de compatibilidade.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top