2015-03-08 7 views
6

Ich benutze jetzt RecyclerView anstelle von ListView, um eine Android - App zu bauen, die blinden Menschen helfen soll.RecyclerView 's Talkback - Funktion nicht gut

Das Problem ist, wenn ich die Talkback-Funktion starte, liest der Leser die Liste eins nach dem anderen, wo ich nicht steuern kann, wie der Leser zum nächsten oder zum vorherigen Element durch meine Geste springt. Was ich tun kann, ist den Leser zu warten, bis er den erreicht, den ich brauche. Mein Testtelefon ist Samsung S4.

Nach meiner Erfahrung arbeitet die Talkback-Funktion gut mit Gesten auf dem normalen ListView.

Jetzt frage ich mich nur, ist es ein Fehler in RecyclerView API? oder stimmt etwas nicht mit den Einstellungen oder den Codes?

Wie auch immer, ich werde es weiter testen.

Antwort

9

Dies liegt daran, dass der RecyclerView als ViewGroup fokussiert ist, während die Elemente in der Liste nicht den Fokus erhalten.

Legen Sie in der Layout-XML-Datei für den ViewHolder das fokussierbare Attribut auf true fest.

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

Wenn das das Problem weiterhin bestehen, versuchen Sie dies in Ihrem Fragment:

mRecyclerView.setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS); 
+0

Dies ist korrekt und sollte als Antwort markiert werden. – GreysonP

1

dachte ich, dieses Problem aus, indem

android: anklickbare = "true"

zu Elementen (Textansichten) im Layout und es funktionierte perfekt in meinem Fall.

Verwandte Themen