我使用
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
中计数器文本的区域设置,而不影响布局的其他部分?或者我的做法是错误的?!
尝试专门为计数器设置英文字体