এটি নির্মূল করার সর্বোত্তম জায়গা হ'ল উত্স কোড। এটি ব্যাখ্যা করার জন্য ডকসটি খুব খারাপভাবেই অপ্রতুল।
dispatchTouchEvent আসলে কার্যকলাপ, দেখুন এবং দেখুন গ্রুপে সংজ্ঞায়িত হয়। এটিকে কোনও নিয়ামক হিসাবে ভাবুন যা স্পর্শ ইভেন্টগুলিকে কীভাবে রুট করবেন dec
উদাহরণস্বরূপ, সর্বাধিক সহজ ঘটনাটি ভিউ.ডিসপ্যাচটচ এভেন্টের এটি যা স্পর্শ ইভেন্টটিকে অনটচলাইস্টেনার.অনুচকে অন্যথায় সংযুক্ত করে যদি এটি সংজ্ঞায়িত হয় বা টুচভেন্টে এক্সটেনশন পদ্ধতিতে নিয়ে আসে ।
জন্য ViewGroup.dispatchTouchEvent জিনিষ পথ আরো জটিল। এর কোন শিশু দর্শনটি ইভেন্টটি পাওয়া উচিত তা সনাক্ত করা দরকার (চাইল্ড.ডিসপ্যাচটচ এভেন্টে ফোন করে)। এটি মূলত একটি হিট টেস্টিং অ্যালগরিদম যেখানে আপনি সনাক্ত করেছেন যে কোন শিশু দর্শনটির সীমানা আয়তক্ষেত্রটিতে টাচ পয়েন্টের স্থানাঙ্ক রয়েছে।
তবে ইভেন্টটি যথাযথ শিশু দৃষ্টিতে প্রেরণের আগে পিতামাতা সমস্ত একসাথে ইভেন্টটি গুপ্তচর এবং / বা বিরত করতে পারবেন। এই কি onInterceptTouchEvent নেই। সুতরাং এটি হিট টেস্টিং করার আগে এই পদ্ধতিটিকে প্রথমে কল করে এবং যদি ইভেন্টটি হাইজ্যাক হয়ে যায় (onInterceptTouchEvent থেকে সত্য ফিরে এসে) এটি শিশুদের দৃশ্যে ACTION_CANCEL প্রেরণ করে যাতে তারা তাদের স্পর্শ ইভেন্ট প্রক্রিয়াটিকে (পূর্ববর্তী স্পর্শ ইভেন্টগুলি থেকে) পরিত্যাগ করতে পারে প্যারেন্ট লেভেলের সমস্ত স্পর্শ ইভেন্টগুলি টুচলিস্টনার.অন টাচ (যদি সংজ্ঞায়িত করা হয়) বা অন টাচএভেন্টে () পাঠানো হয় । এছাড়াও সেক্ষেত্রে, অন্টরেসেপ্টউচ এভেন্টকে আর কখনও ডাকা হয় না।
এমনকি আপনি কি [ক্রিয়াকলাপ | দেখুন গোষ্ঠী | দেখুন] .ডিস্পপ্যাচটচ এভেন্ট্রাইড করতে চান? আপনি যদি কিছু কাস্টম রাউটিং না করেন তবে আপনার উচিত হবে না।
প্রধান এক্সটেনশন পদ্ধতিগুলি হ'ল ভিউগ্রুপ.অনন্টারসেপ্ট টাচ ইভেন্ট যদি আপনি পিতামাতৃ স্তরে স্পাই এবং / অথবা ইন্টারসেপ্ট স্পর্শ ইভেন্টটি করতে চান এবং মূল ইভেন্ট হ্যান্ডলিংয়ের জন্য View.onTouchListener / View.onTouchEvent চান।
এর সবকটি জটিল ডিজাইনের ইমো তবে অ্যান্ড্রয়েড এপিস সরলতার চেয়ে নমনীয়তার দিকে বেশি ঝুঁকছে।