سؤال

تخطيطي الحالي هو كومة من اثنين من divs - G: طبقات في LayoutPanel. يجب أن يكون Div العلوي كبيرًا بقدر ما يجب أن يكون احتواء محتوياته. يجب أن يشغل Div السفلي بقية المساحة على الشاشة ، دون أن تتسبب في ظهور أشرطة التمرير.

يمكن أن تتغير محتويات DIV العلوية ، بحيث يمكن أن يتغير حجم DIV العلوي.

الحل الحالي هو رد اتصال يتم تشغيله كلما تغير محتويات DIV العلوية. يمكن أن يعيد حساب layoutpanel بعد ذلك حساب حجم Div العلوي وتعيين صراحة top و bottom سمات الطبقة الثانية لتتناول بقية المساحة. هل هناك طريقة أفضل؟ شيء مثل،

<g:LayoutPanel>
    <g:layer top="0px" height="whatever you need, baby">
        <c:SomeWidget/>
    </g:layer>
    <g:layer top="the bottom of the first layer" bottom="0px">
        <c:Anotherwidget/>
    </g:layer>
</g:LayoutPanel>
هل كانت مفيدة؟

المحلول 2

يبدو أن الجواب هو أنه لا توجد طريقة أفضل. إعادة حساب اليدوي ليست سيئة للغاية عندما تعتاد على ذلك!

نصائح أخرى

ماذا عن استخدام DockLayoutPanel?

<g:DockLayoutPanel unit='PX'>
  <north size="10" ui:field='northWidget'>
    <c:SomeWidget/>
  </north>
  <center>
    <c:Anotherwidget/>
  </center>
</g:DockLayoutPanel>

ثم center سوف تأخذ بقية الفضاء. إذا كنت ترغب في تغيير حجم الجزء العلوي ، اتصلsetWidgetSize(northWidget, newSize); و ال center سيتم إعادة حساب القطعة.

أعتقد أن HeaderPanel هو القطعة القياسية للقيام بذلك. ربما تمت إضافته بعد طرح السؤال. لقد فاتنا ذلك أيضًا وكان لدينا نسختنا الخاصة لفترة من الوقت.

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