Android: подсказка всегда объявляется в режиме разговора - PullRequest
0 голосов
/ 14 декабря 2018

Я хочу реализовать средство выбора даты и времени, это TextView с подсказкой «Дата» и «Время», но оно заполнит фактическое содержимое после выбора реальной даты и времени.

Мой код XMLкак это

<LinearLayout
      android:id="@+id/happened_time"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:gravity="center_horizontal"
      android:orientation="horizontal">

    <TextView
        android:id="@+id/date_picker"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:clickable="true"
        android:background="?attr/selectableItemBackground"
        android:textSize="16sp"
        android:paddingLeft="4dp"
        android:paddingRight="20dp"
        android:paddingVertical="15dp"
        android:drawableStart="@drawable/access_time"
        android:drawablePadding="25dp"
        android:hint="@string/date_picker"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_weight="1"/>

    <TextView
        android:id="@+id/time_picker"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:clickable="true"
        android:background="?attr/selectableItemBackground"
        android:textSize="16sp"
        android:paddingHorizontal="20dp"
        android:paddingVertical="15dp"
        android:hint="@string/time_picker"/>
  </LinearLayout>

Это выглядит так enter image description here

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

Я также устанавливаю contentDescription динамически,

Я определил в string.xml

<string name="desc_date_picker">Happened date: <xliff:g id="date" example="Dec 14, 2018">%s</xliff:g></string>
<string name="desc_time_picker">Happened time: <xliff:g id="date" example="10:39 AM">%s</xliff:g></string>

и установил его в dateField и timeField, когда новое значение установлено

dateField.setContentDescription (getString (R.string.desc_date_picker, date));timeField.setContentDescription (getString (R.string.desc_time_picker, time));

Затем, когда снимок экрана выглядит следующим образом enter image description here

В режиме обратной связи он будетчитать «Дата произошла: 14 декабря 2018 года» и «Время наступило: время 12:00 вечера»

Я ожидаю, что будет читать «дата» и «время», когда есть только подсказка в TextView, и читать«Произошла дата: 14 декабря 2018 года» и «Произошло время: 12:00 вечера», когда он заполнен другим контентом.Я попытался установить значение Hint (null), но я не хочу этого делать, поскольку при повороте пропускается текст подсказки, и в этом случае не разрешается «дата даты».

...