Android EditText密码,标签为gravitiy RTL

时间:2016-08-19 09:19:36

标签: android android-edittext right-to-left

我花了很多时间试图解决这个问题,但现在没有成功......

当应用程序在带有RTL语言的android上运行时。 EditText的标签(提示)显示在错误的位置。

期望的结果 ltr layout

RTL布局 rtl layou

XML

<?xml version="1.0" encoding="utf-8"?>

<android.support.percent.PercentRelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <!-- Login form container -->
    <android.support.percent.PercentRelativeLayout
        android:id="@+id/form_container"
        android:layout_centerHorizontal="true"
        app:layout_widthPercent="85%"
        app:layout_heightPercent="30%"
        app:layout_marginTopPercent="8%">

        <!-- Username layout -->
        <android.support.design.widget.TextInputLayout
            android:id="@+id/input_layout_username"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <EditText
                android:id="@+id/input_username"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:maxLines="1"
                android:inputType="textVisiblePassword|textNoSuggestions"
                android:textDirection="ltr"
                android:hint="@string/hint_username"/>

        </android.support.design.widget.TextInputLayout>

        <!-- Password layout -->
        <android.support.design.widget.TextInputLayout
            android:id="@+id/input_layout_password"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="8dp"
            android:layout_below="@+id/input_layout_username">

            <EditText
                android:id="@+id/input_password"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:maxLines="1"
                android:textDirection="anyRtl"
                android:hint="@string/hint_password"
                android:inputType="textPassword" />

        </android.support.design.widget.TextInputLayout>

    </android.support.percent.PercentRelativeLayout>

</android.support.percent.PercentRelativeLayout>

如何修复RTL布局中不必要的边距? 此外,如果可以删除/隐藏&#34;可见性切换&#34;(眼睛图标)按钮,那就太棒了!

谢谢!

1 个答案:

答案 0 :(得分:0)

禁用密码切换所需的只是添加&#34; passwordToggleEnabled&#34;属性为TextInputLayout,例如:

<android.support.design.widget.TextInputLayout
        android:id="@+id/input_layout_password"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        app:passwordToggleEnabled="false">

    <EditText
        android:id="@+id/input_password"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:maxLines="1"
        android:textDirection="ltr"
        android:hint="@string/hint_password"
        android:inputType="textPassword" />

</android.support.design.widget.TextInputLayout>