TextInputLayout внутри метки вида прокрутки не объявлен

#android #android-layout #talkback

#Android #android-layout #обратная связь

Вопрос:

У меня не такой сложный макет, который использует компонент внутри вида прокрутки, который имеет вложенное линейное описание, проблема в том, что Talkback не объявляет метку.

  <?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin">


    <LinearLayout
        android:id="@ id/content_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginLeft="@dimen/margin2x"
        android:layout_marginRight="@dimen/margin2x"
        android:animateLayoutChanges="true"
        android:contentDescription="Some Form Description"
        android:orientation="vertical">

        <TextView
            android:id="@ id/some_field"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="@dimen/margin"
            android:focusable="true"
            android:text="some field text" />

        <android.support.design.widget.TextInputLayout
            android:id="@ id/some_field_in_form_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <android.support.design.widget.TextInputEditText
                android:id="@ id/editText1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_alignParentStart="true"
                android:hint="Label for field" />

        </android.support.design.widget.TextInputLayout>

    </LinearLayout>

</ScrollView>
  

Навигация при обратной связи пропускает метку, если поле имеет значение, пользователь не узнает, для чего предназначено это поле.

Ответ №1:

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

    <android.support.design.widget.TextInputLayout
        android:id="@ id/some_field_in_form_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:focusable="true">
  

Если LinearLayout является единственным родительским, этого не происходит.