2011-12-27 4 views
0

私のボタンセットは、新しい画面を押したり閉じたりした直後に動きます。Blackberry fieldManagerの問題8900 vs 9550

ボタンをVerticalFieldManagerに追加しました。次に、horizo​​ntalFieldManagerにverticalFieldManagerを追加して、ボタンを中央に配置しました。

問題はBB 8900(カーブ)上で問題ありません。 9550(タッチスクリーン)では、Iamが最初に画面を開くときにのみ動作します。しかし、この画面に基づいて別の画面を開き、開いている画面を閉じると、ボタンが右に移動します。しかし、9550でのみ?曲線上で私は新しいスクリーンを開き、新しいスクリーンを閉じることができ、そうするべきです。誰かがこの問題を知っていますか?私は

Screen_SendSMS sendSMS = new Screen_SendSMS("",link); 
UiApplication.getUiApplication().pushModalScreen(sendSMS); 

を使用して、それをoverwrittingせずに、私はBBデバイスの定期的な「バックキー」を使用して画面を閉じ、新しい画面を開くための

VerticalFieldManager verticalFieldMng = new VerticalFieldManager();  
      ButtonField btnSendAdrViaSMS = new ButtonField("test"); 
      verticalFieldMng2.add(btnSendAdrViaSMS); 
      ButtonField btn2 = new ButtonField("test2"); 
      verticalFieldMng2.add(btn2); 
      ButtonField btn3 = new ButtonField("test2"); 
      verticalFieldMng2.add(btn3); 

      HorizontalFieldManager horizontalFieldManager = new HorizontalFieldManager(HorizontalFieldManager.FIELD_HCENTER); 
      horizontalFieldManager.add(verticalFieldMng2); 
      add(horizontalFieldManager); 

+0

hfmのボタンをHFMに追加します。 – BBdev

+0

更新私の答え –

答えて

1

非常に奇妙ですが、BBで私を驚かせることはありません。

更新:私のコードをいくつか整理して見直した後、Horizo​​ntalFieldManagerはスクロールするので、フィールドを中央に配置するのに問題があると言えるでしょう。したがって、私が水平に中心化する必要があるときは、VerticalFieldManagerを使用します。垂直に中心を合わせる必要がある場合は、Horizo​​ntalFieldManagerを使用します。フィールドを中央に

基本的なパターンはこれです:垂直で

VerticalFieldManager vfm = new VerticalFieldManager(Manager.USE_ALL_WIDTH); 
    Field toCenter = new <Field>(DrawStyle.HCENTER | Field.FIELD_HCENTER); 
    vfm.add(toCenter); 

、それは次のようになります。

HorizontalFieldManager hfm = new HorizontalFieldManager(Manager.USE_ALL_HEIGHT); 
    Field toCenter = new <Field>(DrawStyle.VCENTER | Field.FIELD_VCENTER); 
    hfm.add(toCenter); 

あなたは算術演算子ORと他のスタイルフラグとフラグを組み合わせることができます。

あなたの場合は、ボタンとvfmで2回、vfmとhfmで2回繰り返す必要があります。

+0

素晴らしい!完璧に動作します! – Martin

+0

gridManagerの例がありますか?私は次のマネージャ GridFieldManager headGridMng = new GridFieldManager(1,4、GridFieldManager.USE_ALL_HEIGHT | Manager.USE_ALL_WIDTH | GridFieldManager.FIXED_SIZE); 「headGridMng.setColumnProperty(XX、GridFieldManager.FIXED_SIZE、XXX);」と組み合わせて、 および headGridMng.add(新しいLabelField( ""、DrawStyle.LEFT | Field.FIELD_LEFT)); – Martin

関連する問題