2015-03-08 17 views
6

Tôi hiện đang sử dụng RecyclerView thay vì ListView để xây dựng một ứng dụng Android nhằm hỗ trợ người mù.Chức năng talkback của RecyclerView không tốt

Vấn đề là khi tôi bắt đầu chức năng talkback, Người đọc đọc từng danh sách một, nơi tôi không thể điều khiển người đọc nhảy sang mục tiếp theo hoặc mục cũ bằng cử chỉ của tôi. Những gì tôi có thể làm là chờ người đọc cho đến khi nó đạt đến cái tôi cần. Điện thoại thử nghiệm của tôi là Samsung S4.

Theo kinh nghiệm của đồng nghiệp của tôi, chức năng talkback hoạt động tốt với cử chỉ trên ListView thông thường.

Bây giờ tôi tự hỏi liệu đó có phải là lỗi trong API RecyclerView không? hoặc có điều gì sai với cài đặt hoặc mã?

Dù sao, tôi sẽ tiếp tục thử nghiệm.

Trả lời

9

Điều này là do recyclerView được tập trung làm ViewGroup, trong khi các mục trong danh sách không lấy tiêu điểm.

Vì vậy, trong tệp xml bố cục cho ViewHolder, hãy đặt thuộc tính có thể đặt tiêu điểm thành 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"> 

Nếu vấn đề vẫn còn tồn tại, hãy thử này trong Fragment của bạn:

mRecyclerView.setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS); 
+0

Điều này đúng và phải được đánh dấu là câu trả lời. – GreysonP

1

tôi đã tìm ra vấn đề này bằng cách thiết lập

android: nhấp được = "true"

thành phần tử (bản xem trước văn bản) trong bố cục và nó hoạt động hoàn hảo trong trường hợp của tôi.

Các vấn đề liên quan