Android: подсказка всегда объявляется в режиме разговора

Я хочу реализовать средство выбора даты и времени, это 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>

Это выглядит так

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

Я также устанавливаю 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));

Затем, когда скриншот выглядит так

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

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

0 ответов

Другие вопросы по тегам