مشكلة في عرض نقطية الحقول في إدارة الميدان أفقي على التوالي في بلاك بيري ستورم

StackOverflow https://stackoverflow.com/questions/1346184

سؤال

وكنت قد خلقت HorizontalFieldManager وأضاف BitmapFields في ذلك.

في بلاك بيري ستورم، Display.getWidth () هو 480. وفي ذلك أريد أن استخدم لأول مرة 450 لإضافة بعض BitmapFields في LHS من الشاشة التي أنا م خلق في وقت التشغيل وإضافة 2 BitmapFields في البداية في RHS من الشاشة.

و2 BimapFields التي أريد أن تظهر في بداية ص المضافة في منشئ وBitmapFields لغيره أنا وهو م خلق في afterwords أضاف وقت التشغيل ص مثل ..

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

وأريد startBitmapField وendBitmapField في RHS وbitmapField [أنا] الذي أنا م خلق في وقت التشغيل في LHS من HorizontalFieldManagers.

وأنا م التفكير في إضافة 2 HorizontalFieldManagers. 1 لbitmapField [أنا] و 1 لstartBitmapField وendBitmapField. ولكن كيف لإضافة 2 HorizontalFieldManagers أو أي FieldManagers البعض في صف واحد؟

وأي حل؟ كيف نفعل ذلك؟

هل كانت مفيدة؟

المحلول

ويمكنك وضع 2 المديرين الميدانيين الأفقي داخل HorizontalFieldManager آخر.

نصائح أخرى

وبدلا من استخدام أعلام المواءمة حاول إضافة إلى طريقة sublayout الخاص بك.

لكل طفل من مدير الخاص بك (HFM) تحتاج إلى setPositionChild المكالمة. لذلك إذا كنت تريد أن محاذاة إلى اليمين، وتركزت عموديا كنت ستفعل شيئا مثل:

وsetPositionChild (deleteButton، hfm.getPreferredWidth () - deleteButton.getPreferredWidth ()، (hfm.getPreferredHeight () / 2) - (deleteButton.getPreferredHeight () / 2))؛

وهذا من شأنه أن يضبط أعلى الزاوية اليسرى من زر الحذف لتكون في الموضع الصحيح بحيث يتم محاذاة اليمين، وتركزت في HFM عموديا.

وهناك سوف يكون هناك مشكلة إذا كنت ترى التطبيق على اتصال. يجب أن يكون كل من الحقل المخصصة في مدير حقل منفصل لتجنب استخدام الحدث اللمس. إذا كنت تستخدم layoutChild بدلا من super.sublayout (العرض والارتفاع)، وهذا سوف تعطيل الملاحة في الشاشة، وبالتالي تجنب استخدامه. استخدام navigationMovement لتخصيص الملاحة الخاص بك من الحقول. أكثر من ذلك: إذا كنت لا تستخدم وظيفة super.sublayout، فإنه قد لا تخطيط بعض الحقول، وبالتالي فمن المستحسن أن استخدامه

والمزيد: استخدام العاصفة محاكي لجميع التطبيقات التي تعمل باللمس يعمل بنظام، و 4.5 JDEs المحاكي لؤلؤة لجميع الإصدارات الأخرى، للقضايا التوافق

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top