2011-01-24 11 views
5

GXT में, मैं नीचे घटक को जोड़ा गया एक महत्वपूर्ण पैनल के साथ एक नियंत्रण मिल गया है, मूल रूप से इस तरह:अतिरिक्त जीडब्ल्यूटी (जीएफटी) में रेड्रा/री-लेआउट को कैसे बल दें?

public class SamplePanel extends ContentPanel { 

ContentPanel panel = new ContentPanel();  

public SamplePanel() { 
    setBottomComponent(panel); 
} 

public void setVisible(boolean isVisible) { 
    panel.setVisible(isVisible); 
} 

पैनल "नीचे घटक" के रूप में स्थापित किया जा रहा है, क्योंकि यह पर रहने की जरूरत है विजेट के नीचे और हर समय देखने योग्य।

समस्या यह है कि पैनल की दृश्यता सही ढंग से टॉगल करती है, 'नीचे घटक' क्षेत्र छोटे आकार के आकार का आकार बदलता नहीं है और नीचे के क्षेत्र के नए आयामों को फिट करता है।

हालांकि, मैंने देखा है कि जब मैं मैन्युअल रूप से माउस के साथ विजेट का आकार बदलता हूं तो नीचे का क्षेत्र आकार बदलता है।

क्या प्रोग्राम को मूल रूप से रेड्रा/रीपेंट/री-लेआउट को मजबूर करने का कोई तरीका है ... इसके घटक के नए आकार को प्रतिबिंबित करने के लिए नीचे घटक परिवर्तन करने के लिए कुछ भी है?

मैं इन सब की कोशिश की है और वे काम नहीं करते:

public void setVisibility(boolean isVisible) { 
     panel.setVisible(isVisible); 
     doLayout(true); 
     recalculate(); 
     repaint(); 
    } 

धन्यवाद

उत्तर

8

पिछले GXT आप कर सकते हैं में बुला पर विचार करें।

this.layout(true); 

अन्यथा आप किसी ईवेंट को फायर कर सकते हैं। ईवेंट बदलें।

+0

वह अग्नि का आकार बदलना घटना चाल इतनी सूक्ष्म है, तो हैकी, इतनी छिपी हुई है लेकिन यह बहुत ही आकर्षक काम करता है ... –

0

मैं GXT के बारे में पता नहीं है, लेकिन GWT में मैं force() या forceLayout() में से एक का प्रयोग करेंगे मेरे पैनल पर तरीके। शायद ऐसा करने के लिए एक समान एपीआई है!

एचटीएच।

+0

हम्म ... मुझे ContentPanel पर एक .force() या .forceLayout() विधि नहीं मिल रही है (इस वर्ग का सुपरक्लास मैं उपयोग कर रहा हूं)। कौन सा वर्ग खुलासा करता है। बल()? – Cuga

0

This post दावा है कि करने के लिए ऊपर और नीचे घटकों पैनल को प्रस्तुत करने के बाद लेआउट में भाग नहीं लेते हैं और मैन्युअल वर्कअराउंड (रोलाआउट का उपयोग करके) या मैन्युअल रूप से पैनल के आकार को सेट करने का सुझाव देते हैं।

माता पिता से आकार खोजने और onResize (चौड़ाई, ऊंचाई)

1

क्या आपने ConentPanel की setLayoutOnChange() विधि का उपयोग करने का प्रयास किया है?