我正在像这样使用这个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 不从右到左改变。
选择带有镜像效果的阿拉伯语时,箭头必须切换到左侧。
我的可绘制代码
<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>
这里出了什么问题?
如果语言是阿拉伯语,则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
试试这个方法