خلق السوائل الفريق في GWT لملء الصفحة ؟

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

  •  01-07-2019
  •  | 
  •  

سؤال

أود الفريق في GWT لملء الصفحة دون الحاجة فعلا إلى ضبط الحجم.هل هناك طريقة لعمل هذا ؟ حاليا لدي التالية:

public class Main  implements EntryPoint
{
    public void onModuleLoad()
    {
        HorizontalSplitPanel split = new HorizontalSplitPanel();
        //split.setSize("250px", "500px");
        split.setSplitPosition("30%");

        DecoratorPanel dp = new DecoratorPanel();
        dp.setWidget(split);

        RootPanel.get().add(dp);
    }

}

مع القانون السابق مقتطف لا يظهر شيء.هل هناك استدعاء الأسلوب أنا في عداد المفقودين ؟

شكرا


تحديث سبتمبر 17 '08 الساعة 20:15

أنا وضعت بعض الأزرار (صراحة حجمها) على كل جانب و هذا لا يزال لا يعمل.أنا مندهش حقا ليس هناك مثل FillLayout فئة أو setFillLayout طريقة أو setDockStyle(DockStyle.ملء) أو شيء من هذا القبيل.ربما لم يكن ذلك ممكنا ؟ ولكن شعبية كما GWT ، أعتقد أنه من الممكن.

تحديث سبتمبر 18 '08 الساعة 14:38

لقد حاولت وضع RootPanel العرض و الارتفاع إلى 100% و هذا لا يزال لا يعمل.شكرا على الاقتراح على الرغم من أنه يبدو أنه ربما كان الذهاب إلى العمل.أي اقتراحات أخرى؟?

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

المحلول

جوجل قد أجبت على الجزء الرئيسي من السؤال الخاص بك في واحدة من هذه الأسئلة:http://code.google.com/webtoolkit/doc/1.6/FAQ_UI.html#How_do_I_create_an_app_that_fills_the_page_vertically_when_the_b

النقطة الأساسية هي أنه لا يمكنك تعيين الارتفاع إلى 100%, يجب أن نفعل شيئا مثل هذا:

final VerticalPanel vp = new VerticalPanel();
vp.add(mainPanel);
vp.setWidth("100%");
vp.setHeight(Window.getClientHeight() + "px");
Window.addResizeHandler(new ResizeHandler() {

  public void onResize(ResizeEvent event) {
    int height = event.getHeight();
    vp.setHeight(height + "px");
  }
});
RootPanel.get().add(vp);

نصائح أخرى

بن إجابة جيدة جدا ، ولكن أيضا خارج التاريخ.تحجيم معالج ضروري في GWT 1.6, ولكن نحن في 2.4 الآن.يمكنك استخدام DockLayoutPanel أن يكون المحتوى الخاص بك ملء الصفحة عموديا.ترى عينة التطبيق الإلكتروني, الذي يستخدم هذا الفريق.

أعتقد أنك سوف تحتاج إلى وضع شيء على اليسار و/أو اليمين من سبليت (سبليت.setLeftWidget(القطعة), سبليت.setRightWidget(القطعة) أو تقسيم.إضافة(القطعة) ، والتي سوف تضيف الأول إلى اليسار ثم إلى اليمين) من أجل أي شيء لتظهر.

حاول تحديد عرض و/أو ارتفاع rootpanel إلى 100% قبل إضافة القطعة الخاصة بك.

لوحات تلقائيا تغيير حجم أصغر العرض المرئي.لذلك يجب تغيير كل فريق إضافة إلى RootPanel إلى 100% بما في ذلك SplitPanel.على RootPanel نفسها لا تحتاج إلى تغيير حجم.وذلك في محاولة:

split.setWidth("100%");
split.setHeight("100%");

وثائق DecoratorPanel يقول:

إذا قمت بتعيين عرض أو ارتفاع DecoratorPanel, تحتاج إلى تعيين الطول والعرض middleCenter الخلية إلى 100% بحيث middleCenter الخلية تأخذ كل المساحة المتوفرة.إذا كنت لا تعيين العرض والارتفاع من DecoratorPanel سيتم التفاف محتوياته بإحكام.

المشكلة هي أن DecoratorPanel middleCenter الخلية سوف تملأ ضيق على المحتويات الخاصة بك كافتراضي ، SplitPanel لا تسمح "100%" style حجم الإعداد.أن تفعل ما تريد ، وضع الجدول أسلوب مناسب ، على CSS الخاص بك:

.gwt-DecoratorPanel .middleCenter { الارتفاع:100%;العرض:100%;}

بالنسبة لي أنها لا تعمل إذا أنا فقط تعيين العرض مثل

الفريق.setWidth("100%");

الفريق هو VerticalPanel أن أصبح عشوائيا حجم أنني لا أعرف من أين تأتي.ولكن ما @بن Bederson علق عملت بشكل جيد جدا بالنسبة لي بعد أن أضفت السطر:

الفريق.setWidth(نافذة.getClientWidth() + "px");

فقط هذا شيء آخر.شكرا

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