Android:在TextInputLayout

时间:2017-02-01 13:43:13

标签: android android-layout android-edittext android-textinputlayout

我正在尝试创建如下图enter image description here

中的布局

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

我使用Textview实现具有Textview的EditText,而不使用TextInpt布局,如下所示使用相对布局

enter image description here

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,我就无法实现它。

我如何解决此问题?

3 个答案:

答案 0 :(得分:11)

尝试这样 - 使用相对或线性布局环绕以获得类似的输出

    <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。

答案 1 :(得分:0)

是的,有可能

创建一个可绘制的

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>

最后根据需要调整您的布局

答案 2 :(得分:0)

我正在尝试如下,它对我有用。也许它可以帮助你。 不知怎的,我无法在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>