在上图中,密码字段位于TextInputLayout中,右侧还有一个TextView,指向忘记密码活动。
我使用Textview实现具有Textview的EditText,而不使用TextInpt布局,如下所示使用相对布局
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,我就无法实现它。
我如何解决此问题?
答案 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>