22

我正在尝试在这些方面做一些事情:

编辑文本示例

我可以使用显示提示android:hint="Email Address"但无法显示帮助文本 -这将是您的电子邮件用户名

    <android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <EditText
            android:id="@+id/et_username"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="15"
            android:hint="Username"
            app:et_helper="Username is preferably your registered email"/>

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

我得到的只是并且没有用户名最好是您在edittext下面的注册电子邮件:

输出:

输出

任何指针表示赞赏。谢谢你。

4

7 回答 7

25

最好的方法是使用TextInputLayout. 谷歌在新的设计库中引入了它。为了使用 TextInputLayout 您必须将以下内容添加到您的 build.gradle 依赖项中:

compile 'com.android.support:design:22.2.0'

然后在您的 xml 文件中使用它:

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

<EditText
    android:id="@+id/editText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:hint="Enter your name"/>
</android.support.design.widget.TextInputLayout>

您可以通过将错误设置为 true 来设置文本。尽管它用于显示错误,但它适合您的使用。如果需要,您可以更改颜色和字体。

TextInputLayout til = (TextInputLayout)    findViewById(R.id.textInputLayout);
til.setErrorEnabled(true);
til.setError("You need to enter a name");

在此处输入图像描述

于 2015-11-24T10:56:06.607 回答
7

使用设计支持库 28,在 TextInputLayout 中添加了一个内置的辅助文本功能。

 implementation 'com.android.support:design:28.0.0'

现在使用 xml 或以编程方式启用错误

 textInputLayout.isHelperTextEnabled=true
 textInputLayout.error="Email can not be Empty!!!"

另外,提示和错误现在可以一起使用!!!

例子

et.setOnFocusChangeListener { v, b ->
            if (b) {
                textInputLayout.helperText = "yourhelperText"

            } else {
                textInputLayout.helperText = null
                if(et.text.toString()==""){    // or any other validation
                    textInputLayout.error="Email can not be Empty!!!"
                }
            }

文本输入布局 | 安卓开发者

编辑不要忘记通过 xml 或以编程方式启用错误和 helperText。

于 2018-11-19T12:59:44.277 回答
3

辅助文本不是由 TextInputLayout 提供的。但是,下面的文章有一个工作示例。它使用从 TextInputLayout 扩展的类,方法是将 HelperText 作为另一个指示符添加到类中,与 ErrorText 一起工作。

https://medium.com/@elye.project/material-login-with-helper-text-232472400c15#.vm28p662v

于 2016-08-08T03:44:04.490 回答
3

具有 TextInputLayout OutlinedBox 样式和 TextInputEditText 的完整 XML

       <com.google.android.material.textfield.TextInputLayout
            android:id="@+id/til_customer_no"
            style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginStart="5dp"
            android:layout_marginLeft="5dp"
            android:layout_marginEnd="5dp"
            android:layout_marginRight="5dp"
            android:padding="3dp"
            app:helperTextEnabled="true"
            app:helperText="* Enter customer number that will be used">

            <!--android:maxLength="13"-->
            <com.google.android.material.textfield.TextInputEditText
                android:id="@+id/et_customer_no"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="Customer No"
                android:inputType="number" />

        </com.google.android.material.textfield.TextInputLayout>

于 2021-01-11T10:14:38.743 回答
1

所以你想要的是这样的:

帮助文本

您可以通过使用此库来实现此目的:

https://github.com/rengwuxian/MaterialEditText

您可以设置“帮助文本”属性以显示行下方的文本,并设置“提示”以显示行上方的文本。以下是所附图片的示例布局

<com.rengwuxian.materialedittext.MaterialEditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Password"
        android:inputType="textPassword"
        app:met_floatingLabel="normal"
        app:met_helperText="Must contain at least 8 characters"
        app:met_helperTextAlwaysShown="true"/>
于 2016-06-17T04:55:32.363 回答
0

我在这里问过类似的问题。如果你想在 LinearLayout 中保持两个 EditText 视图一起垂直关闭,我认为没有办法。我认为,一种方法是您可以将顶部 EditText 的 android:gravity 设置为“底部”,将“顶部”设置为较低的 EditText。但是在RelativeLayout中,这应该很容易。

如果您想显示提示文本(在 EdiText 之上),即使在用户输入时也可以使用 TextInputLayout。通常将提示设置为 EditText 不会以这种方式工作。提示文本将在视图通过触摸聚焦后消失。

于 2015-11-24T11:13:32.707 回答
0

您可以通过这种方式简单地使用(与 library )中的app:helperText属性:TextInputLayoutcom.google.android.material:material:1.2.1

<com.google.android.material.textfield.TextInputLayout
        ...
        android:hint="Email Address"
        app:helperText="This will be your email username">

        <com.google.android.material.textfield.TextInputEditText
            ... />

</com.google.android.material.textfield.TextInputLayout>

或以编程方式(kotlin)方式:

textInputLayout.helperText = "This will be your email username"
于 2020-09-28T10:52:59.300 回答