2015-02-02 6 views
8

मेरे पास चार टेक्स्ट व्यू हैं, और मैं ऑर्डर को नियंत्रित करने की कोशिश कर रहा हूं कि जब कोई उपयोगकर्ता TalkBack का उपयोग करके नेविगेट करता है और इशारा स्पर्श करता है तो उन्हें फोकस मिलता है।अगला फोकसडाउन क्यों TalkBack नेविगेशन के साथ काम नहीं करता है?

TextView android:text="foo" android:clickable="false" android:focusable="true" android:focusableInTouchMode="true" android:id="@+id/id_foo" android:nextFocusDown="@+id/id_baz"/> 

TextView android:text="bar" android:clickable="false" android:focusable="true" android:focusableInTouchMode="true" android:id="@+id/id_bar" android:nextFocusDown="@+id/id_qux"/> 

TextView android:text="baz" android:clickable="false" android:focusable="true" android:focusableInTouchMode="true" android:id="@id/id_baz" android:nextFocusDown="@id/id_bar"/> 

TextView android:text="qux" android:clickable="false" android:focusable="true" android:focusableInTouchMode="true" android:id="@id/id_qux" android:nextFocusDown="@id/id_foo"/> 

एक उपयोगकर्ता TalkBack को बदल जाता है, को छू लेती है "foo", और फिर TextViews के बीच नेविगेट करने के लिए नीचे स्वाइप मैं आदेश foo-> baz-> bar-> qux जाना चाहते हैं। लेकिन, ऑर्डर फोकसडाउन का उपयोग करके स्थापित करने का ऑर्डर करने का कोई प्रभाव नहीं पड़ता है, और इसके बजाय फोकस ऑर्डर हमेशा स्क्रीन पर टेक्स्ट व्यू की स्थिति का पालन करता है। मैंने क्लिक करने योग्य, फोकस करने योग्य, और फोकस करने योग्य इन टचमोड के हर संभावित संयोजन की कोशिश की है। मैंने कोड में विचारों पर setNextFocusDownId को कॉल करने का प्रयास किया है। मैंने एंड्रॉइड सेटिंग करने की कोशिश की है: TextViews पर imeOptions = "actionNext"। कुछ भी काम नहीं करता है। मैं क्या खो रहा हूँ?

+0

मैं एक ही मुद्दा मिल गया है। मदद चाहिए। – conca

उत्तर

2

अगला फोकसडाउन टॉकबैक जेस्चर का संदर्भ नहीं देता है। यह ट्रैक-बॉल और कीबोर्ड तीर कुंजी नेविगेशन को संदर्भित करता है। टॉकबैक एक्सप्लोरेशन जेस्चर अगले फोकस के लिए नीचे/दाएं स्वाइप करने के लिए सीमित हैं, और पिछले फोकस के लिए ऊपर/बाएं स्वाइप कर रहे हैं। और निश्चित रूप से, अन्वेषण करने के लिए खींचें।

+0

लेकिन ... क्या अगले और पिछले फोकस को सेट करने का कोई तरीका है? – conca

+0

मेरा मानना ​​है कि आप जो खोज रहे हैं वह अगली फोकस फॉरवर्ड है। https://developer.android.com/reference/android/view/View.html#attr_android:nextFocus आगे फॉरवर्ड फोकस और पिछड़ा फोकस रिफ्लेक्सिव है। इसलिए यदि आप तत्व के लिए "अगला फॉरवर्ड फोकस" सेट करते हैं, तो उस तत्व का अगला फोकस बैकवर्ड स्वचालित रूप से सेट हो जाएगा। पूर्व: element1.setNextForwardFocusId (element2.id), element1 पर सेट करने के लिए स्वचालित रूप से element2 का अगला बैकवर्ड फ़ोकस सेट करेगा। – ChrisCM

2

TalkBack नेविगेशन को कॉन्फ़िगर करने के लिए View.setAccessibilityTraversalAfter(int) और View.setAccessibilityTraversalBefore(int) का उपयोग करने का प्रयास करें। कृपया ध्यान दें कि TalkBack को केवल दो दिशाओं हैं: (बाएं या ऊपर स्वाइप करें)

  • आगे (नीचे दाईं ओर स्वाइप करें या)
  • वापस।

उदाहरण:

findView(R.id.bar).setAccessibilityTraversalBefore(R.id.quix); 
+0

वही था जो मुझे चाहिए था। आपको धन्यवाद। –

+0

उन एपीआई एपीआई 22 से शुरू हो रहे हैं: '- ( – azizbekian

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