2015-03-08 6 views
6

Używam teraz RecyclerView zamiast ListView do zbudowania aplikacji na Androida, która ma pomagać niewidomym.Funkcja Talkback RecyclerView niezbyt dobrze

Problem polega na tym, że uruchomię funkcję Talk Back. Czytnik odczytuje listę jeden po drugim, gdzie nie mogę kontrolować przejścia czytnika do następnej lub poprzedniej pozycji moim gestem. Co mogę zrobić, to poczekać, aż czytelnik dotrze do tego, którego potrzebuję. Mój testowy telefon to Samsung S4.

Zgodnie z doświadczeniem mojego kolegi funkcja Talk Back działa dobrze z gestem na zwykłym ListView.

Teraz po prostu zastanawiam się, czy to błąd w API RecyclerView? lub coś jest nie tak z ustawieniami lub kodami?

W każdym razie, będę kontynuował testowanie tego.

Odpowiedz

9

Wynika to z faktu, że recyclerView jest skupiony jako ViewGroup, podczas gdy elementy na liście nie mają fokusu.

W pliku xml układu dla obiektu ViewHolder ustaw atrybut focusable na true.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:focusable="true" 
    style="@style/ItemInView"> 

Jeśli problem nadal istnieje, spróbuj tego w swoim Fragment:

mRecyclerView.setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS); 
+0

To jest poprawne i powinno być oznaczone jako odpowiedź. – GreysonP

1

zorientowali się ten problem przez ustawienie

android: klikalne = "true"

do elementów (textviews) w układzie i działało idealnie w moim przypadku.

Powiązane problemy