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 覆盖。
我正在尝试创建如下图所示的布局
在上图中,密码字段位于 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 覆盖。