2015-02-02 13 views
8

Dört TextView'im var ve bir kullanıcı TalkBack'i kullanarak gezinirken ve hareketlere dokunarak odaklanma sırasını kontrol etmeye çalışıyorum. Bir kullanıcı TalkBack'i döndüğündeNeden nextFocusDown, TalkBack navigasyon ile çalışmıyor?

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"/> 

, ben sipariş foo-> baz-> Çubuğu-> qux gitmek istiyorum "foo" dokunur ve sonra TextView'lar arasında gezinmek için aşağı siliyor. Ancak, nextFocusDown kullanarak ayarlamaya çalıştığım sıra hiçbir etkinin yok gibi görünmektedir ve bunun yerine odak sırası her zaman ekranda sadece TextViews öğesinin konumlarını izler. Tıklanabilir, odaklanabilir ve focusableInTouchMode'un olası tüm kombinasyonlarını denedim. Koddaki görünümlerde setNextFocusDownId çağırmayı denedim. TextViews'da android: imeOptions = "actionNext" ayarlamayı denedim. Hiçbir şey işe yaramıyor. Neyi kaçırıyorum?

+0

. Yardıma ihtiyacım var. – conca

cevap

2

NextFocusDown hareketlerini TALKBACK ifade etmez. Bu, track-ball ve klavye ok tuş navigasyonunu ifade eder. TalkBack keşif hareketleri, bir sonraki odaklama için aşağı/sağa kaydırmak ve bir önceki odaklama için yukarı/sola kaydırmakla sınırlıdır. Ve elbette, keşfetmek için sürükleyin.

+0

ama ... bir sonraki ve bir önceki odağı ayarlamanın bir yolu var mı? – conca

+0

Aradığın şeyin yanında olduğunu düşünüyorumFocusForward. https://developer.android.com/reference/android/view/View.html#attr_android:nextFocusForward İleri odak ve geriye doğru odak, yansıtıcıdır. Dolayısıyla, "nextForwardFocus" öğesini bir öğe olarak ayarlarsanız, bu öğenin nextFocusBackward öğesi otomatik olarak ayarlanır. Örn: element1.setNextForwardFocusId (element2.id), element2'nin nextBackwardFocus öğesinin otomatik olarak eleman1 olarak ayarlanmasını sağlar. – ChrisCM

2

TalkBack'e navigasyon yapılandırmak için View.setAccessibilityTraversalAfter(int) ve View.setAccessibilityTraversalBefore(int) kullanmaya çalışın.

ileri
  • (aşağı sağa kaydırın veya)
  • geri (yukarı sola veya tokatlamak): TalkBack sadece iki yön vardır unutmayın.

Örnek: Ben de aynı sorunu var

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

Tam olarak ihtiyacım olan buydu. Teşekkür ederim dostum. –

+0

Bu API'lar API 22'den başlayarak kullanılabilir: '- ( – azizbekian

İlgili konular