android:hint始终以对讲模式发布

时间:2018-12-14 20:22:13

标签: android android-accessibility

我想实现一个日期和时间选择器,它们是带有提示“日期”和“时间”的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

在对讲模式下,它将显示“发生日期:2018年12月14日”和“发生时间:下午12:00”

我希望在TextView中只有提示时会显示“日期”和“时间”,并在其他内容充满时显示为“发生日期:2018年12月14日”和“发生时间:12:00 PM”内容。我尝试设置setHint(null),但我不想这样做,因为如果旋转,它将丢失提示文本,并且在这种情况下无法解析“日期”。

0 个答案:

没有答案