Rtl 对AppCompatEditText Android 的drawableEnd 的支持

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

我正在像这样使用这个AppCompatEditText

<com.google.android.material.textfield.TextInputLayout
                        android:id="@+id/tilCountry"
                        style="@style/LoginTextInputLayoutStyle"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginStart="@dimen/dpSixteen"
                        android:layout_marginEnd="@dimen/dpSixteen"
                        android:layout_marginBottom="@dimen/dpTwenty"
                        android:background="@null"
                        android:hint="@string/chooseCountry"
                        app:hintTextAppearance="@style/TextAppearance.App.TextInputLayout"
                        app:hintTextColor="@color/moonRaker">

                        <androidx.appcompat.widget.AppCompatEditText
                            android:id="@+id/etCountry"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:drawableEnd="@drawable/ic_blue_right"
                            android:drawableTint="@color/blue"
                            android:focusable="true"
                            android:imeOptions="actionNext"
                            android:textAppearance="@style/SignupEditText"
                            tools:targetApi="m" />
                    </com.google.android.material.textfield.TextInputLayout>

当用户将语言更改为阿拉伯语时,rtl 看起来一切都很好,但是 drawableEnd 不从右到左改变。 with English with Arabic

选择带有镜像效果的阿拉伯语时,箭头必须切换到左侧。

我的可绘制代码

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="7.41dp"
    android:height="12dp"
    android:viewportWidth="7.41"
    android:viewportHeight="12"
    **android:autoMirrored="true"**>
  <path
      android:pathData="M0,10.58 L4.58,6 0,1.41 1.41,0l6,6 -6,6Z"
      android:fillColor="#1b47db"/>
</vector>

这里出了什么问题?

android android-edittext android-drawable android-appcompat arabic-support
1个回答
0
投票

如果语言是阿拉伯语,则Drawable应从头开始设置,否则应从末尾开始设置。

etCountry.setCompoundDrawablesWithIntrinsicBounds(0, 0, @drawable/ic_blue_right, 0); //Right side drawable
etCountry.setCompoundDrawablesWithIntrinsicBounds(@drawable/ic_blue_right, 0, 0, 0); //Left side drawable

试试这个方法

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