سؤال

هل من الممكن إدارة العناصر الفرعية في صندوق, بحيث يكون مجموع عرض جميع العناصر الفرعية مساويا لعرض صندوق?

بحيث تملأ العناصر الصندوق ولا تترك مساحة.

ارتفاع العناصر الفرعية هو افتراضيا ارتفاع هبوكس, فماذا عن العرض?لا أريد حساب العرض في برنامجي.سيكون من الأفضل أن يقوم التخطيط بذلك تلقائيا ، بحيث لا تكون هناك حاجة إلى حساب.

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

المحلول

ذلك يعتمد على أي نوع من الأطفال يفعل HBox يحتوي.قد لا يكون لدى بعض الأطفال عقد يمكن تغيير حجمها.ومع ذلك، بشكل عام، يمكنك استخدام HBox.setHgrow() طريقة وتعيين نفسه Priority لجميع أطفال hbox.الشرح موجود في javadoc:

يضع أولوية تنمو الأفقي للطفل عند احتوائها بواسطة Hox.إذا تم تعيين HOX ، فسيستخدم HOX الأولوية لتخصيص مساحة إضافية إذا تم تغيير حجم HBOX أكبر من العرض المفضل.إذا كان لدى أطفال Hbox المتعددين نفس النمو الأفقي أولوية, ، ثم المساحة الإضافية ستكون ينقسم مساء بينهم.إذا لم يتم تحديد أولوية النمو الأفقي على طفل ، فلن يخصص HOBLE مساحة أفقية إضافية إذا كان ذلك متاحًا.سيؤدي تعيين القيمة إلى NULL إلى إزالة القيد.

بالإضافة إلى ذلك، إذا كنت تحاول الحصول على تخطيط يشبه الشبكة، فجرّب خيارات التخطيط الأخرى، على سبيل المثال TilePane أو FlowPane و ربما GridPane.

نصائح أخرى

رمز بسيط لإجاباتك سيكون هذا:

giveacodicetagpre.

يوصى باستخدام فئة Hoxbox بدلا من اسم جزء Hbox.

في FXML:

<HBox>
   <Label HBox.hgrow="ALWAYS" maxWidth="Infinity">
       TEST
   </Label>
</HBox>

إضافة إلى @ إجابة Bdshahab، نظرا لأن HBOX سيحاول تغيير حجم أطفالهن إلى عرضها المفضل، فإنها ستلقى المربع فقط إذا كانت العرض المفضل مجتمعة أوسع من عرض Hbox.

لذلك قد يكون من الضروري القيام بشيء مثل:

giveacodicetagpre.

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