在RTL设备上更改日期格式?

use*_*026 4 android right-to-left

我有一个在LTR设备(android 7.1.1)上显示很好的日期字段,
问题是在RTL设备上,日期字段内容已镜像

因此,在美国设备上,日期将正常显示:03/14/2019
在RTL android设备上,日期将如下所示:2019/14/03

包含值的TextView的代码:

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="8dp"
        android:layout_marginBottom="8dp"
        android:orientation="vertical">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/inspect_date"
            android:textSize="18sp" />

        <com.xerox.printerinspection.controls.DateEditText
            android:id="@+id/edit_inspect_date"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:background="@color/lightGray"
            android:paddingStart="4dp"
            android:paddingEnd="4dp"
            android:drawableEnd="@android:drawable/ic_menu_my_calendar" />
    </LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我像这样设置日期:

   Date currentDate = Calendar.getInstance().getTime();
   inspectionDateEdit.setDate(currentDate);
Run Code Online (Sandbox Code Playgroud)

解决此问题的正确方法是什么?

更新

父fragment_detail.xml标记如下所示:

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/lightGray"
    android:textDirection="locale"
    tools:context="com.xerox.MainActivity">
Run Code Online (Sandbox Code Playgroud)

Mar*_*ler 5

由于父级的android:textDirection="locale"属性(android:supportsRtl="true"Manifest.xml- 中设置时,甚至可能是默认值,因此可以省略),因此必须为嵌套的子节点定义文本方向-这样就不会继承父级的值; EditTextRTLLTR设备上强制布局时,这至少适用于:

<androidx.appcompat.widget.AppCompatEditText
    android:id="@+id/edit_inspect_date"
    android:text="@string/edit_inspect_date"
    android:textDirection="ltr"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>
Run Code Online (Sandbox Code Playgroud)

屏幕截图

可能android:drawableEnd应该是android:drawableRight,这样它就不会受到影响(这取决于是否打算将其翻转到另一侧,无论是否翻转)。


Usm*_*afi 0

ltr您可以尝试像 xml 文件中的 DateEditText一样定义布局方向。