Обход доступности RecyclerView для загруженных ленивых детей в RecyclerView - PullRequest
1 голос
/ 14 июня 2019

Мы можем заполнить RecyclerView элементами и, при привязке, мы можем пометить некоторые из этих элементов как «заголовки» для доступности.

Это означает, что в режиме обхода «заголовков» TalkBack,пользователь может перемещаться между ними напрямую.

Однако RecyclerView явно связывает и освобождает детей во время прокрутки.В любой момент может быть только небольшое подмножество общих элементов заголовка, загруженных в держатели вида.Обход только между этими объектами бесполезен и сбивает с толку.

Есть ли способ или даже лучшая практика для обеспечения RecyclerView таким образом, чтобы мы одновременно удовлетворяли (а) вторичную переработку представления и (б) осмысленный переход длядоступность для всего набора контента?

1 Ответ

0 голосов
/ 09 июля 2019

Не все элементы, рассматриваемые в качестве заголовков в вашем исходном наборе данных, будут видимым образом присутствовать в RecyclerView одновременно, только те, которые находятся в текущем подмножестве данных, представленных RecycleView.Adapter. Будучи невидимыми на экране, службы специальных возможностей, такие как TalkBack, не имеют доступа к этим другим заголовкам и поэтому не будут взаимодействовать с ними.

Технически, вы можете посмотреть на настройку пользовательской обработки дерева доступности , но для этого потребуется обработать всю информацию о доступности для представления, а не только заголовки, и это, вероятно, повлияет на производительность, особенно для больших наборы данных. Невозможно переопределить обработку заголовка в одиночку.

Поведение, которое вы описываете, по умолчанию и ожидаемое поведение на Android, даже если оно не кажется идеальным с точки зрения пользовательского интерфейса программы чтения с экрана.

...