2011-07-20 12 views
7

मेरे पास मेरे दृश्य में कुछ विधियां हैं जो कॉल किए जाने वाले कुछ आकारों को संशोधित करती हैं। जावा में यह सुनिश्चित करने के लिए कि घटक अद्यतन किया गया है, मैं repaint() पर कॉल करूंगा। क्या ऐसा कुछ है जो सुनिश्चित करेगा कि मेरा विचार सही तरीके से अपडेट किया गया है?संशोधनों पर एंड्रॉइड दृश्य कैसे अपडेट करें?

मैंने कहीं पढ़ा था कि onDraw() विधि में invalidate() बुला बातें नवीनतम जानकारी रखना होगा और इसलिए मैं अपने तरीकों कि संशोधित कि आकार कि तैयार कर रहे हैं में repaint() की तरह कुछ है की जरूरत नहीं होगी।

क्या यह सही है, या क्या मुझे कुछ और करना है?

संपादित

एक उदाहरण में जोड़ने के लिए, एक विधि मैं मेरे विचार में कहते हैं:

public void setLineThickness(int thickness) { 
    aLineThickness = thickness; 

    if(aLineThicness > 1) 
     //repaint();  - Okay in Java but not in Android 

} 

उत्तर

16

invalidate() कॉलिंग दृश्य वह खुद को पुनः बनाने की जरूरत बता देंगे (OnDraw कहते हैं) कुछ समय में भविष्य। तो यदि आप अपने विचार में कुछ बदलते हैं, जैसे लाइन मोटाई, इसके बाद अमान्य() को कॉल करें। इस तरह आप जानते हैं कि आपका विचार अंततः अपडेट हो जाएगा।

आपका सभी ड्राइंग कोड ऑन ड्रा() में लागू किया जाना चाहिए और आपके अन्य तरीकों को केवल अपने दृश्य की स्थिति को बदलना चाहिए, जिसका उपयोग अमान्य() को कॉल करने के बाद किया जाएगा।

+0

यदि मैं सही तरीके से आपका अनुसरण करता हूं, तो मुझे अपनी 'setLineTickness' विधि में' अवैध() 'कॉल करना चाहिए? – StartingGroovy

+1

यदि आप चाहते हैं कि आपका विचार उपयोगकर्ता इसे कॉल करने के बारे में चिंता न करें, तो हाँ। मैं इसे वहां रखूंगा (इसे विधि में अंतिम पंक्ति बनाएं) –

+0

धन्यवाद, मैं इसे आज़मा दूंगा और देख सकता हूं कि यह कैसे जाता है – StartingGroovy

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