2011-12-12 20 views
8

क्या कोई घटना या श्रोता जो अभिविन्यास के समय @ आग को बदलता है?ओरिएंटेशन चेंज इवेंट या श्रोता एंड्रॉइड

या यह पता लगाने के लिए कि फोन का अभिविन्यास बदल गया है?

के रूप में मैं जानता हूँ कि वहाँ इस के लिए एक श्रोता है आप

उत्तर

4

आपको Handling Runtime Changes पर पढ़ने की आवश्यकता है।

यह अभिविन्यास परिवर्तन जैसे हैंडलिंग सामान करने का पुराना तरीका बताता है।

Fragments के बाद से, उन्होंने इसे करने का एक नया तरीका लागू किया है (पुराने के समान) - लेकिन यदि आप Fragments का उपयोग नहीं करते हैं तो इसका उपयोग करने में कोई अर्थ नहीं है।

+0

वास्तव में मेरे ऐप के साथ समस्या है ... मैं व्यूपार्जर का उपयोग कर रहा हूं और जब अभिविन्यास विस्तार खंड बदलता है तो उचित डेटा प्रदर्शित नहीं होता है ... यही कारण है कि मैं चाहता हूं इस तरह के परिवर्तनों को संभालें, क्या आपके पास अन्य विकल्प के लिए कोई विचार है। –

+0

एक अस्पष्ट प्रश्न एक अस्पष्ट उत्तर देता है - यदि आप एक विशिष्ट चाहते हैं, तो आपको एक विशिष्ट प्रश्न पूछने की आवश्यकता है। शायद अपने प्रश्न में कुछ कोड जोड़ें और हमें बताएं कि क्या गलत हो रहा है। – kaspermoerch

+0

कोई ज़रूरत नहीं है समस्या रीप्ले –

4

जहाँ तक धन्यवाद,

बाहर चेक http://developer.android.com/reference/android/view/OrientationListener.html

है कि वर्ग वहाँ के माध्यम से एक नजर है।

आशा है कि इससे मदद मिलेगी।

+0

ओह धन्यवाद आदमी ... –

+1

यही वर्ग मैं पदावनत। – kaspermoerch

+0

नीचे दिया गया उत्तर शायद आपकी सबसे अच्छी शर्त होगी :) –

-1

कुछ फोन पर ऑरेंटेशन चेंज इवेंट वास्तविक आकार बदलने से पहले आग लग जाती है। जब आप आकार बदलते हैं तो आपको पता होना चाहिए कि अभिविन्यास परिवर्तन ईवेंट का उपयोग करने के लिए आपको अनुशंसा न करें।

बस $ (विंडो) का उपयोग .resize (function() {की जाने वाली चीजें})

यू गतिशील आकार बदलने घटना है और कुछ बिंदु पर इसे बदल यू कि

function ResizeEventHandler(){ 
    var resizeEvent = function(){} 

    this.ResizeEvent = function(value){ 
     if (value!=null) resizeEvent = value;    
     else return resizeEvent() 
    } 
} 

var ResizeEventHandlerInstance = new ResizeEventHandler(); 

$(window).resize(function(){ ResizeEventHandlerInstance.ResizeEvent(); }); 

function YourDinamicalEventSetterFunction(){ 
    ResizeEventHandlerInstance.ResizeEvent(function(){ 
       alert('resized'); 
    }); 
} 
जैसी संरचना का उपयोग कर सकते करने के लिए की जरूरत है

मूल रूप से यू आकार परिवर्तन घटना को बदलने की जरूरत है जब -> परिवर्तन ResizeEventHandlerInstance ... और आप घटना हर समय निकल की जरूरत नहीं होगी जब यू यह

+2

के लिए धन्यवाद, जबकि आपका उत्तर पूरा हो गया है, यह प्रश्न विशेष रूप से [एंड्रॉइड] के साथ टैग किया गया है और आपके द्वारा प्रदान किया गया समाधान एक एंड्रॉइड एसडीके समाधान नहीं है बल्कि वेबव्यू समाधान है। यह जवाब सिर्फ पानी को झुकाता है। –

1

बदलने के लिए आप जब एक ओरिएंटेशन परिवर्तन ट्रिगर में अधिक रुचि रखते हैं चाहता हूँ लेआउट का एक redisplay, आप टी चाहते हैं o इसे देखें: http://developer.android.com/reference/android/view/View.OnLayoutChangeListener.html

"लेआउट प्रसंस्करण के कारण दृश्य की लेआउट सीमा बदलते समय कॉलबैक के लिए इंटरफेस परिभाषा लागू की जाती है।"

0

के बाद से 180 डिग्री रोटेशन onConfigurationChanged द्वारा पता लगाया नहीं कर रहे हैं,

यहां बेहतर जवाब देखें: How do I detect screen rotation

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