2008-09-17 17 views
18

मैं जीडब्ल्यूटी में एक पैनल को वास्तव में आकार को सेट किए बिना पृष्ठ भरने के लिए चाहता हूं। क्या इसे करने का कोई तरीका है? वर्तमान में मेरे पास निम्नलिखित हैं:पृष्ठ भरने के लिए जीडब्ल्यूटी में एक तरल पैनल बनाना?

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

पर मैं कुछ बटन डाल प्रत्येक पक्ष पर (स्पष्ट रूप से उनके आकार सेट) और है कि अभी भी काम नहीं करता। मैं वास्तव में हैरान हूं कि फिलहायआउट क्लास या सेटफिललाउट विधि या सेटडॉक स्टाइल (डॉक स्टाइल.फिल) या ऐसा कुछ नहीं है। शायद यह संभव नहीं है? लेकिन जीडब्ल्यूटी के रूप में लोकप्रिय होने के लिए, मुझे लगता है कि यह संभव होगा।

अद्यतन सितं, 18 '08 पर 14:38

मैं RootPanel चौड़ाई और 100% करने के लिए ऊंचाई की स्थापना की कोशिश की है और है कि अभी भी काम नहीं किया। हालांकि सुझाव के लिए धन्यवाद, ऐसा लगता है कि यह शायद काम करने जा रहा था। कोई अन्य सुझाव??

उत्तर

19

गूगल अपने पूछे जाने वाले प्रश्न में से एक में अपने प्रश्न का मुख्य हिस्सा उत्तर दिया: 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); 
+2

यह एक अच्छा जवाब है, लेकिन इस अंतर्निहित जीडब्ल्यूटी के लिए अब क्षमताएं हैं। कुछ लिंक के लिए मेरा जवाब देखें। – Brad

0

मुझे लगता है कि आपको स्प्लिट (split.setLeftWidget (विजेट), split.setRightWidget (विजेट) या split.add (विजेट) के बाएं और/या दाईं ओर कुछ डालना होगा, जो पहले को जोड़ देगा बाईं ओर, दाईं ओर) कुछ भी दिखाने के लिए।

0

अपने विजेट को जोड़ने से पहले रूटपैन की चौड़ाई और/या ऊंचाई को 100% पर सेट करने का प्रयास करें।

0

पैनल स्वचालित रूप से सबसे छोटी दृश्य चौड़ाई में आकार बदलते हैं। तो आपको रूटप्नेल में आपके द्वारा जोड़े गए प्रत्येक पैनल को अपने स्प्लिटपैनल सहित 100% का आकार बदलना होगा। रूटपनेल को खुद को आकार बदलने की आवश्यकता नहीं है। तो कोशिश:

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

ड्रेजेक, आपकी प्रतिक्रिया के लिए धन्यवाद। मैंने स्प्लिट पैनेल आयामों और रूटपैनल आयामों को 100% पर सेट करने का प्रयास किया। अभी भी कोई भाग्य नहीं है। एक बार फिर धन्यवाद। –

+0

अपनी सीएसएस शैली सेट करें ताकि पैनल सीमाएं दिखाई दे सकें। फिर आप देखेंगे कि किन पैनल को आकार बदलने की जरूरत है। जब मैं किसी भी तरह से पैनलों में खो गया हूं तो समस्या निवारण का यह मेरा पसंदीदा तरीका है और मुझे नहीं पता कि किसके लिए जिम्मेदार है। – Drejc

0

DecoratorPanel के लिए दस्तावेज़ का कहना है:

आप चौड़ाई या DecoratorPanel की ऊंचाई सेट हैं, तो आप इतना है कि 100% ऊंचाई middleCenter सेल की चौड़ाई निर्धारित करने की आवश्यकता middleCenter सेल सभी उपलब्ध स्थान लेता है। यदि आप सजावटी पैनेल की चौड़ाई और ऊंचाई निर्धारित नहीं करते हैं, तो यह इसकी सामग्री को कसकर लपेट देगा।

0

समस्या यह है कि सजावटी पैनेल मध्य केंद्र सेल डिफ़ॉल्ट रूप से आपकी सामग्री पर तंग भर जाएगा, और स्प्लिट पैनेल "100%" शैली आकार सेटिंग की अनुमति नहीं देता है। अपनी इच्छानुसार करने के लिए, तालिका के स्टाइल को उचित रूप से सेट करें, अपने सीएसएस पर:

.gwt-decoratorPanel।middleCenter { ऊंचाई: 100%; चौड़ाई: 100%; }

13

बेन का उत्तर बहुत अच्छा है, लेकिन यह भी पुराना है। जीडब्ल्यूटी 1.6 में एक आकार का हैंडलर जरूरी था, लेकिन अब हम 2.4 पर हैं। आपकी सामग्री पृष्ठ को लंबवत भरने के लिए आप का उपयोग कर सकते हैं। sample mail app देखें, जो इस पैनल का उपयोग करता है।

+2

यहां स्रोत है: http://code.google.com/p/google-web-toolkit/source/browse/trunk/samples/mail/src/com/google/gwt/sample/mail/client/Mail.java –

0
मेरे लिए

अगर मैं

panel.setWidth ("100%") की तरह चौड़ाई सेट यह काम नहीं करता;

पैनल एक वर्टिकल पैनेल है कि इसे अभी यादृच्छिक आकार मिला है कि मुझे नहीं पता कि यह कहां से आता है। लेकिन क्या @Ben Bederson मेरे लिए बहुत अच्छी तरह से काम टिप्पणी के बाद मैं लाइन कहा:

panel.setWidth (Window.getClientWidth() + "पिक्सल");

बस यह कुछ और नहीं। धन्यवाद

संबंधित मुद्दे