должен быть добавлен в сам ConstraintLayout.
тавь, что у тебя естьLinearLayo,ut
внутриRelativeLayout
который содержит 3TextViews
с участиемartist, song and album
:
<RelativeLayout
...
<LinearLayout
android:id="@id/text_view_container"
android:layout_width="warp_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@id/artist"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Artist"/>
<TextView
android:id="@id/song"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Song"/>
<TextView
android:id="@id/album"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="album"/>
</LinearLayout>
<TextView
android:id="@id/unrelated_textview1/>
<TextView
android:id="@id/unrelated_textview2/>
...
</RelativeLayout>
Когда вы активируете TalkbackReader и нажимаете наTextView
вLinearLayout
например, TalkbackReader будет читать «Исполнитель», «Песня» ИЛИ «Альбом».
Но вы могли бы поставить эти первые 3TextViews
в фокус-группу, используя:
<LinearLayout
android:focusable="true
...
Теперь TalkbackReader будет читать «Исполнитель Песня Альбом».
2unrelated TextViews
все равно был бы сам по себе и не читал, что такое поведение я хочу добиться.
(ВидетьПример Google Codelabs для справки)
Я сейчас пытаюсь воссоздать это поведение сConstrainLayout
но не вижу как.
<ConstraintLayout>
<TextView artist/>
<TextView song/>
<TextView album/>
<TextView unrelated_textview1/>
<TextView unrelated_textview2/>
</ConstraintLayout>
Помещение виджетов в «группу» не работает:
<android.support.constraint.Group
android:id="@+id/group"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="true"
android:importantForAccessibility="yes"
app:constraint_referenced_ids="artist,song,album"
/>
Итак, как я могу заново создать фокус-группы для доступности вConstrainLayout
?
[РЕДАКТИРОВАТЬ]: Похоже, что единственный способ создать решение - использовать «focusable = true» на внешнем ConstraintLayout и / или «focusable = false» на самих представлениях. Это имеет ряд недостатков, которые следует учитывать при работе с клавиатурой / переключателями:
https://github.com/googlecodelabs/android-accessibility/issues/4