android - 带有前缀的 TextInputLayout 中的 EditText

标签 android xml

我在 TextInputLayout 中有一个 EditText+91 TextView 前缀为 EditText.

<RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/activity_vertical_margin">

            <android.support.design.widget.TextInputLayout
                android:id="@+id/layoutMobile"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <EditText
                    android:id="@+id/etPhoneNumber"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="@string/txt_hint_phone"
                    android:imeOptions="actionDone"
                    android:inputType="phone"
                    android:maxLength="10"
                    android:maxLines="1"
                    android:minLines="1"
                    android:paddingLeft="30dp"
                    android:layout_marginBottom="10dp"
                    android:text="9736625345"
                    android:textColorHint="@color/colorBlack"
                    android:textSize="@dimen/sixteen_sp" />

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

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_centerInParent="true"
                android:text="+91"
                android:textSize="16sp" />
        </RelativeLayout>

但是当 android:paddingLeft="30dp" 被赋予 EditText 时,TextInputLayout 的提示和错误消息也会发生变化!!

enter image description here

我希望 TextInputLayout 的提示和错误消息保持左对齐,而 EditText 应该有一个不可编辑的前缀。

正确的实现方式是什么?

最佳答案

如果您不想提供填充,这可能会帮助您调整 View 。

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginTop="@dimen/activity_vertical_margin">

         <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="+91"
            android:textSize="16sp" />

        <android.support.design.widget.TextInputLayout
            android:id="@+id/layoutMobile"
            android:layout_width="0dp"
            android:weight="1"
            android:layout_height="wrap_content">

            <EditText
                android:id="@+id/etPhoneNumber"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="@string/txt_hint_phone"
                android:imeOptions="actionDone"
                android:inputType="phone"
                android:maxLength="10"
                android:maxLines="1"
                android:minLines="1"
                android:text="9736625345"
                android:textColorHint="@color/colorBlack"
                android:textSize="@dimen/sixteen_sp" />
        </android.support.design.widget.TextInputLayout>

对于错误指示,请使用此 java 代码

mEditTextObject.setError("Error!")//to show error
mEditTextObject.setError(null)//to Remove Error

关于android - 带有前缀的 TextInputLayout 中的 EditText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49249508/

相关文章:

通过 WSGI 连接 Android Django

c# - 具有多个祖先条件的 XPath 表达式

android - XML 文件中的 <com.example.android.ViewName/> 标签是什么意思?

xml - 为编码的 XML 值应用 XSLT 模板

android - 连接 PhoneGap 与本地主机网络服务

java - 进度对话框有问题吗?

android - 将 View 添加到 fragment 内的布局

android - 如何在android imageview中显示来自数据库的图像

java - 如何使用 VTD-XML 多次添加 xml 节点?

java - 我可以在 hadoop 的配置 xml 中使用 Java 系统属性吗?