मैंने इस पर अब तक लगभग 6 घंटे बिताए हैं, और बाधाओं के अलावा कुछ भी नहीं मार रहा है। सामान्य आधार एक में कुछ पंक्ति है कि वहाँ है ListView
(चाहे वह अनुकूलक द्वारा उत्पन्न, या एक शीर्ष लेख दृश्य के रूप में जोड़ दिया जाता है) है जिसमें एक EditText
विजेट और एक Button
। मैं जो कुछ करना चाहता हूं वह जॉगबॉल / तीर का उपयोग करने में सक्षम है, चयनकर्ता को सामान्य जैसे व्यक्तिगत आइटम पर नेविगेट करने के लिए, लेकिन जब मैं किसी विशेष पंक्ति में पहुंचता हूं - भले ही मुझे पंक्ति को स्पष्ट रूप से पहचानना पड़े - जिसमें ध्यान देने योग्य है बच्चा, मैं चाहता हूं कि वह बच्चा चयनकर्ता के साथ स्थिति का संकेत देने के बजाय ध्यान केंद्रित करे।
मैं कई संभावनाओं की कोशिश की है, और अब तक कोई भाग्य नहीं था।
लेआउट:
<ListView
android:id="@android:id/list"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
/>
शीर्ष लेख देखें:
EditText view = new EditText(this);
listView.addHeaderView(view, null, true);
मान लें कि एडेप्टर में अन्य आइटम हैं, तीर कुंजियों का उपयोग करके सूची में चयन ऊपर / नीचे जाएगा, जैसा कि अपेक्षित था; लेकिन जब हेडर पंक्ति में जा रहा है, तो यह चयनकर्ता के साथ भी प्रदर्शित होता है, और EditText
जॉगबॉल का उपयोग करने पर ध्यान केंद्रित करने का कोई तरीका नहीं है । नोट: EditText
वसीयत पर टैप करने से यह उस बिंदु पर केंद्रित होगा , हालांकि यह एक टचस्क्रीन पर निर्भर करता है, जिसकी आवश्यकता नहीं होनी चाहिए।
ListView
जाहिरा तौर पर इस संबंध में दो तरीके हैं:
1 setItemsCanFocus(true)
.: चयनकर्ता कभी प्रदर्शित नहीं होता है, लेकिन EditText
तीर का उपयोग करते समय ध्यान केंद्रित कर सकता है। फोकस खोज एल्गोरिदम की भविष्यवाणी करना कठिन है, और कोई दृश्य प्रतिक्रिया (किसी भी पंक्तियों पर: ध्यान देने योग्य बच्चे होने या न होने पर) जिस पर आइटम का चयन किया गया है, दोनों उपयोगकर्ता को एक अप्रत्याशित अनुभव दे सकते हैं।
2 setItemsCanFocus(false)
.: चयनकर्ता हमेशा गैर-टच-मोड में खींचा जाता है, और EditText
कभी भी फोकस प्राप्त नहीं कर सकता है - भले ही आप उस पर टैप करें।
मामलों को बदतर बनाने के लिए, editTextView.requestFocus()
रिटर्न को सही कहना, लेकिन वास्तव में EditText को ध्यान नहीं देता है।
मैं जो कल्पना कर रहा हूं, वह मूल रूप से 1 & 2 का एक हाइब्रिड है, जहां सूची सेटिंग के बजाय यदि सभी आइटम ध्यान देने योग्य हैं या नहीं, तो मैं ध्यान केंद्रित करने के लिए सेट करना चाहता हूं सूची में एक आइटम के , ताकि चयनकर्ता सीमलेस रूप से संक्रमण का चयन करने से संक्रमण कर सके गैर-ध्यान देने योग्य वस्तुओं के लिए पूरी पंक्ति, और फ़ोकस करने योग्य बच्चों वाले आइटम के लिए फ़ोकस ट्री ट्रैवर्स करना।
कोई लेने वाला?