2012-04-21 16 views
5

अनुवाद के बाद, अनुवाद पर ऑनक्लिक लिस्टनर का अनुवाद नहीं किया गया है। मैंने कस्टम लाइनरलाउट में getHitRect को ओवरराइड करने की कोशिश की लेकिन सफलता के बिना। मैं भी सफलता :)देखें एनीमेशन स्पर्श क्षेत्र नहीं बदलता

TranslateAnimation open = new TranslateAnimation(0, displayWidth - ivTimelineWidth, 0, 0); 
open.setDuration(1000); 
open.setFillAfter(true); 
llMapContent.startAnimation(open); 

के बिना एक touchdelegate और पूरे इंटरनेट पर पाए गए सभी अन्य सुझावों का उपयोग करने की कोशिश की कृपया मेरी मदद करो :)

जुलिएन

उत्तर

7

मैं सही ढंग से अपने समस्या को समझने रहा हैं, तो आप अनुवाद के बाद कुछ पर क्लिक करना चाहते हैं और यह किसी चीज़ के टच पर पंजीकरण नहीं कर रहा है। यह समस्या तब हो रही है क्योंकि अनुवाद एनीमेशन वास्तव में ऑब्जेक्ट को स्थानांतरित नहीं करता है, बस स्क्रीन पर पिक्सेल। यदि आप उस क्षेत्र को स्पर्श करते हैं जहां आइटम था तो आप ऑन टच को कॉल करेंगे। वास्तव में स्क्रीन पर पिक्सल मैं इस कोड स्निपेट का उपयोग करना चाहिये बजाय वस्तु को स्थानांतरित करने के लिए:

MarginLayoutParams marginParams = new MarginLayoutParams(someobject.getLayoutParams()); 
marginParams.setMargins(xx, xx, xx, xx); 
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(marginParams); 
someobject.setLayoutParams(layoutParams); 

आप शायद onAnimationEnd या onAnimationStart तरीकों में इस प्रकार रखना चाहिए। उम्मीद है की यह मदद करेगा।

+0

धन्यवाद, यह अभिन्न लगता है लेकिन मेरा कोड आपके कोड स्निपेट का उपयोग करके एनीमेशन के अंत में गायब हो जाता है ... – Jul

+0

क्या आपने fillAftertrue भाग – testingtester

+0

हाँ रखा है, मैंने इसे रखा है। – Jul