如何在多语言 Android 应用程序中为 TextInputLayout 显示英文计数器文本

问题描述 投票:0回答:1

enter image description here描述

我使用

TextInputLayout
TextInputEditText
来允许用户在我的 Android 应用程序中输入文本。我启用了最大长度为 500 的字符计数器,因此当用户键入时,计数器会显示输入的字符数。问题是这样的:

我的应用程序支持多种语言,包括孟加拉语和马拉地语等语言,它们根据系统的区域设置强制使用自己的数字。因此,当设备设置为孟加拉语或马拉地语时,输入字符的计数器文本将以这些语言显示。但是,无论系统语言如何,我都希望保留英文计数器文本(数字),以确保整个应用程序的一致性。

我尝试过的

  • 我尝试更改语言环境上下文以与英语相反。这部分有效,因为计数器最初以本地语言(例如孟加拉语)显示,但在输入后,它会切换为英语。这种不一致的行为并不理想,因为计数器应始终保持英语。

    这是我的

    TextInputLayout
    的 XML:

<com.google.android.material.textfield.TextInputLayout
    android:id="@+id/post_edit_text_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="16dp"
    android:background="@drawable/edittext_border_post"
    android:padding="8dp"
    app:boxBackgroundMode="none"
    app:counterEnabled="true"
    app:counterMaxLength="500"
    app:counterTextColor="@color/textColorSecondary"
    app:hintEnabled="false">

    <com.google.android.material.textfield.TextInputEditText
        android:id="@+id/post_edit_text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/transparent"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:gravity="top"
        android:inputType="textMultiLine"
        android:maxHeight="200dp"
        android:minLines="6"
        android:scrollbars="vertical"
        android:textColor="@color/textColorPrimary"
        android:textColorHint="@color/textColorSecondary"
        android:textSize="16sp"
        app:boxBackgroundColor="@android:color/transparent" />

</com.google.android.material.textfield.TextInputLayout>

如何确保无论系统语言如何,字符计数器始终以一致的方式显示英文数字?

是否有一种方法可以专门覆盖

TextInputLayout
中计数器文本的区域设置,而不影响布局的其他部分?或者我的做法是错误的?!

java android kotlin android-layout locale
1个回答
0
投票

尝试专门为计数器设置英文字体

© www.soinside.com 2019 - 2024. All rights reserved.