Android: 在TextInputLayout中的EditText右侧显示TextView

Android: Display TextView in the right-side of EditText which is in the TextInputLayout

我正在尝试创建如下图所示的布局

在上图中,密码字段位于 TextInputLayout 中,右侧还有一个 TextView,指向忘记密码 Activity。

我在没有 TextInpt 布局的情况下使用 Textview 实现了 EditText,如下所示,使用相对布局

XML布局:

        <EditText
            android:id="@+id/email_address"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:drawableLeft="@drawable/ic_email"
            android:drawableStart="@drawable/ic_email"
            android:drawablePadding="10dp"
            android:hint="@string/email_address"
            android:textSize="14sp"
            android:maxLines="1"
            android:inputType="textEmailAddress" />



        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

        <EditText
            android:id="@+id/etxt_password_login"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:drawableLeft="@drawable/ic_password"
            android:drawableStart="@drawable/ic_password"
            android:drawablePadding="10dp"
            android:textSize="14sp"
            android:hint="Password"
            android:layout_alignParentLeft="true"
            android:inputType="textPassword"
            android:maxLines="1"/>

            <TextView
                android:id="@+id/txt_forget_password"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_alignParentRight="true"
                android:layout_centerVertical="true"
                android:text="forget ?"
                android:textSize="12sp"
                android:layout_marginRight="10dp"
                android:textColor="#808080"
                />

        </RelativeLayout>

但是,如果我在EditText 中添加TextInputLayout,我无法实现它。

如何解决这个问题?

有可能

创建可绘制对象

border.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <stroke
        android:width="0.2dp"
        android:color="@color/color_secondary" />
    <solid android:color="#fff" />

    <padding android:bottom="8dp" />
    <padding android:top="8dp" />
    <padding android:left="8dp" />
    <padding android:right="8dp" />


</shape>

****在你的代码中..****

 <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@color/border"  **apply drawable here**
        android:orientation="horizontal">

    <EditText
        android:id="@+id/etxt_password_login"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="14sp"
        android:hint="Password"
        android:inputType="textPassword"
        android:maxLines="1"/>

        <TextView
            android:id="@+id/txt_forget_password"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_centerVertical="true"
            android:text="forget ?"
            android:textSize="12sp"
            android:textColor="#808080" />

    </RelativeLayout>

最后根据需要调整布局

我正在尝试如下所示,它对我有用。可能对你有帮助。 不知何故,我无法在 TextInputLayout 中使用 TextView,布局崩溃。但我可以在其中使用 ImageViews。

<android.support.design.widget.TextInputLayout
    android:id="@+id/layoutTextInput"
    style="@style/CommonTextInputLayout"
    android:textColorHint="@color/aluminium">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal">
        <EditText
            android:id="@+id/editTextValue"
            style="@style/CommonEditText"
            android:imeOptions="actionNext"
            android:layout_marginBottom="8dp"
            android:inputType="text"/>
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="-40dp"
            android:src="@drawable/ic_tick_green"/>
    </LinearLayout>
</android.support.design.widget.TextInputLayout>

像这样尝试 - 使用相对或线性布局包围以获得那样的输出

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <android.support.design.widget.TextInputLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <EditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="Password"/>

        </android.support.design.widget.TextInputLayout>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:text="Forgot Password ?"/>
    </RelativeLayout>

注意:为对齐的编辑文本设置一些填充


如果您键入完整的 edittext ,您的角色的 textview 覆盖。