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

时间:2017-05-14 21:12:14

标签: 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>

结果是:

enter image description here

但我想要这样的事情:

enter image description here

如何在editText左侧设置passwordToggle gravity align 出于多种原因,我在清单

中禁用了rtl支持
android:supportsRtl="false"

1 个答案:

答案 0 :(得分:6)

TextInputLayout中,添加以下参数:

android:layoutDirection="rtl"

修改 对于API&lt; 17(使用android.support.v4.view.ViewCompat):

TextInputLayout inputLayout = (TextInputLayout) findViewById(R.id.RegisterPassInput); 
ViewCompat.setLayoutDirection(inputLayout, ViewCompat.LAYOUT_DIRECTION_RTL);