2012-03-08 14 views
5

मेरे पास मेरी गतिविधि में एक दृश्य है। मैं यह जानना चाहता हूं कि यह किसी भी क्रिया के कारण स्क्रीन के चारों ओर स्थानांतरित हो गया है (उपयोगकर्ता स्क्रॉल, रिश्तेदार दृश्य आकार बदलना सामग्री इत्यादि)। यह लाइब्रेरी में होना है, इसलिए मैं पदानुक्रम से पूछताछ कर सकता हूं, लेकिन मैं इसे नियंत्रित नहीं करता हूं, न ही मैं इसे ईवेंट श्रोताओं को जोड़ने के अलावा इसे संशोधित कर सकता हूं।मेरा दृश्य कब स्थानांतरित हो गया है, मैं कैसे पता लगा सकता हूं?

क्या मतदान के बजाए इसे एक घटना के रूप में प्राप्त करने का कोई तरीका है?

उत्तर

7

वहाँ इस के लिए एक घटना है : एंड्रॉइड सोर्स कोड (4.0), android.view.SurfaceView.java:205

0

क्या आपने अपने व्यू पर 'ड्रैग' ईवेंट सुनने की कोशिश की है?

कोशिश onDragListener, एक अच्छी जगह को लागू कैसे करना है कि खींचें होगा और ड्रॉप एंड्रॉयड ट्यूटोरियल को समझने शुरू करने के लिए: View.getViewTreeObserver().addOnScrollChangedListener()

final ViewTreeObserver.OnScrollChangedListener mScrollChangedListener = ...; 

@Override 
protected void onAttachedToWindow() { 
    super.onAttachedToWindow(); 
    getViewTreeObserver().addOnScrollChangedListener(mScrollChangedListener); 
} 

@Override 
protected void onDetachedFromWindow() { 
    super.onDetachedFromWindow(); 
    getViewTreeObserver().removeOnScrollChangedListener(mScrollChangedListener); 
} 

स्रोत: http://developer.android.com/guide/topics/ui/drag-drop.html

+0

दुर्भाग्यवश यह घटनाएं प्रदान नहीं कर रहा है। मुझे यकीन नहीं है कि क्यों, लेकिन ऐसा लगता है कि यह बिल्कुल ठीक नहीं है कि किस तरह की घटना है। – Hounshell

+0

यदि आप किसी दृश्य को क्लिक करना चाहते हैं और उसे चारों ओर ले जाना चाहते हैं, तो यह एक 'ड्रैग' है, यदि यह कुछ है जिसे आप स्क्रॉल कर सकते हैं, तो आप ऑनक्रॉल लिस्टनर को देख सकते हैं। आकार बदलने के लिए कोई श्रोता नहीं है, इसलिए आपको उस श्रोता को अपने आप से लागू करना पड़ सकता है। – Soham

+0

जो मैं खोज रहा हूं वह ड्रैग या स्क्रॉल ईवेंट नहीं है जिसे मैं नियंत्रित करता हूं। मेरा दृश्य किसी तीसरे पक्ष के अंदर बैठता है देखें कि मेरे दृश्य को किसी भी तरीके से चारों ओर स्थानांतरित कर सकता है। मैं जानना चाहता हूं कि मुझे कब स्थानांतरित किया गया है। क्योंकि मेरे पास मूल दृश्य नहीं है, इसलिए मैं किसी भी प्रकार के व्यवहार पर किसी भी तरह का ओवरराइड नहीं कर सकता – Hounshell

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

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