(कृपया ध्यान दें कि व्यवहार इस सवाल में वर्णित केवल कुछ और दूसरे से असंबद्ध लगने हम क्या कर रहे थे की वजह से दिखाई दिया। the accepted answer देखें।)बदलें कैसे SlidingDrawer ट्रैकबॉल या कर्सर का जवाब
हम एक साथ एक Android गतिविधि है और एक SlidingDrawer
RelativeLayout
के अंदर। जिस तरह से यह गतिविधि ट्रैकबॉल (या कर्सर कुंजी) को प्रतिसाद देती है वह अजीब है। फ्रिड ग्रिड व्यू में आइटमों के बीच स्थानांतरित हो जाएगा, लेकिन जब भी कर्सर ग्रिड व्यू की "आउट" दिशा में चलता है। (उदाहरण के लिए ऊपर जब ऊपर, बाएं सबसे पहले आइटम पर छोड़ दिया गया) स्लाइडिंग ड्रॉवर खुलता है या बंद हो जाता है। विशेष रूप से, फोकस ग्रिड व्यू में एक ही आइटम पर रहता है --- यह स्लाइडिंग ड्रॉवर पर नहीं जाता है।
ट्रैकबॉल के साथ यह विशेष रूप से भयानक है, क्योंकि आपके वास्तविक गंतव्य के पीछे ट्रैकबॉल कताई करने से स्लाइडिंग ड्रॉवर बार-बार खुलने और बंद हो जाएगा।
हमने पाया है कि हम पूरी तरह से onTrackballEvent()
ओवरराइड करके ट्रैकबॉल को बंद कर सकते हैं। हम सामान्य रूप से ग्रिड व्यू पर ट्रैकबॉल और कर्सर काम करना पसंद करते हैं लेकिन स्लाइडिंग ड्रॉवर को खोलने या बंद करने का कारण नहीं बनते हैं। सिद्धांत रूप में हम ट्रैकबॉल को स्लाइडिंग ड्रॉवर की विभिन्न सामग्री पर ध्यान केंद्रित करने के लिए भी पसंद करेंगे।
कैसे?
उपयोगी विचारों को कॉल करने के लिए एक अच्छा विचार प्रतीत होता है। इसने मुझे कस्टम 'स्लाइडिंग ड्रावर' में 'ओपन()' को ओवरराइड करने का विचार दिया और एक स्टैक ट्रेस उत्सर्जित किया, जिससे स्वीकृत उत्तर में वर्णित समाधान का कारण बन गया। –