الصفوف
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
يتم تعريف القوالب على أنّها مجموعة من الإدخالات، ولكن تحدِّد معلومات العرض
كيفية تقسيم هذه المُدخلات إلى صفوف وصفوف متباعدة.
على سبيل المثال، عند ضبط مجموعة معيّنة على مدخلات مضمّنة،
يتم إنشاء الحظر من صفوف أقل من العدد الذي يتم ضبطه على
مدخلات خارجية. فهي تحتوي على نفس عدد المدخلات ولكن
بعدد مختلف من الصفوف!

الصف
السمة Row
هي مجموعة أفقية من العناصر
وفواصل العناصر غير المتداخلة.
ويتم تحديد حدود الصف بواسطة حدود العناصر
والفاصلات التي تنتمي إلى ذلك الصف، بحيث يتم تضمين جميع العناصر.
فاصل الصف
العلامة RowSpacer
هي مساحة عمودية فارغة بين صفَّين.
يتم تحديد حدود فواصل الصفوف من خلال معلومات العرض نفسها. بعد قياس جميع صفوف المجموعة، يتم إدخال مسافات بحجمها المحدد بين الصفوف في معلومات العرض.
إنّ محتوى هذه الصفحة مرخّص بموجب ترخيص Creative Commons Attribution 4.0 ما لم يُنصّ على خلاف ذلك، ونماذج الرموز مرخّصة بموجب ترخيص Apache 2.0. للاطّلاع على التفاصيل، يُرجى مراجعة سياسات موقع Google Developers. إنّ Java هي علامة تجارية مسجَّلة لشركة Oracle و/أو شركائها التابعين.
تاريخ التعديل الأخير: 2025-07-25 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-07-25 (حسب التوقيت العالمي المتفَّق عليه)"],[[["\u003cp\u003eBlocks are visually arranged using rows and spacers, determined by render info, affecting the block's layout regardless of the number of inputs.\u003c/p\u003e\n"],["\u003cp\u003eRows are horizontal groupings of elements and spacers, with their size determined by the contained elements.\u003c/p\u003e\n"],["\u003cp\u003eRow spacers are vertical gaps between rows, with their size dictated by the render info to manage the overall block layout.\u003c/p\u003e\n"]]],["Blocks contain inputs, and their visual layout depends on the render info, which structures inputs into rows and spacer rows. Inline inputs create blocks with fewer rows than external inputs, despite having the same number of inputs. A Row consists of elements and element spacers, with its boundaries defined by these components. RowSpacers are empty spaces between rows; the render info determines their size and placement between rows.\n"],null,["# Rows\n\nBlocks are defined as a collection of inputs, but the [render info](/blockly/guides/create-custom-blocks/renderers/concepts/info)\ndetermines how these inputs get broken up into rows and spacer rows.\n\nFor example, when a block is set to [inline inputs](/blockly/guides/create-custom-blocks/define/inline-vs-external),\nthe block is made of fewer rows than when it is set to\n[external inputs](/blockly/guides/create-custom-blocks/define/inline-vs-external). It has the same number of inputs but\na different number of rows!\n\nRow\n---\n\nA [`Row`](/blockly/reference/js/blockly.blockrendering_namespace.row_class) is a horizontal collection of non-overlapping [elements](/blockly/guides/create-custom-blocks/renderers/concepts/elements)\nand [element spacers](/blockly/guides/create-custom-blocks/renderers/concepts/elements#element_spacer).\n\nThe bounds of a row are determined by the bounds of the [elements](/blockly/guides/create-custom-blocks/renderers/concepts/elements) and\n[spacers](/blockly/guides/create-custom-blocks/renderers/concepts/elements#element_spacer) that belong to that row, so that all of the elements\nare contained.\n\nRow spacer\n----------\n\nA [`RowSpacer`](/blockly/reference/js/blockly.blockrendering_namespace.spacerrow_class) is an empty vertical space that goes between two\nrows.\n\nThe bounds of the row spacers are determined by the\n[render info](/blockly/guides/create-custom-blocks/renderers/concepts/info) itself. After measuring all of the rows of the block,\nthe [render info](/blockly/guides/create-custom-blocks/renderers/concepts/info) inserts spaces of its chosen size between rows."]]