将PasswordToggle Gravity更改为左侧(对于RTL语言)

Ham*_*rzi 3 android android-edittext android-textinputlayout

我用来TextInputLayout从用户那里获取密码,如下所示:

<android.support.design.widget.TextInputLayout
                android:id="@+id/RegisterPassInput"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="16dp"
                app:passwordToggleEnabled="true"
                android:layout_marginRight="16dp"
                android:layout_toStartOf="@+id/RegisterPassImg">

                <EditText
                    android:id="@+id/RegisterPassET"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="right"
                    android:hint="@string/Password"
                    android:inputType="textPassword"
                    android:maxLength="40" />
            </android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

结果是:

在此输入图像描述

但我想要这样的东西:

在此输入图像描述

如何在editText左侧设置passwordToggle gravity align.
出于很多原因,我rtl清单中禁用了支持

android:supportsRtl="false"
Run Code Online (Sandbox Code Playgroud)

Bar*_*rak 6

在你的TextInputLayout,添加这个参数:

android:layoutDirection="rtl"
Run Code Online (Sandbox Code Playgroud)

编辑: 对于API <17(使用android.support.v4.view.ViewCompat):

TextInputLayout inputLayout = (TextInputLayout) findViewById(R.id.RegisterPassInput); 
ViewCompat.setLayoutDirection(inputLayout, ViewCompat.LAYOUT_DIRECTION_RTL);
Run Code Online (Sandbox Code Playgroud)