小智 103

浮动提示EditText:

在gradle中添加以下依赖项:

compile 'com.android.support:design:22.2.0'
Run Code Online (Sandbox Code Playgroud)

在布局中:

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

        <EditText
            android:id="@+id/editText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="UserName"/>
    </android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

  • 注意:[TextInputLayout在用户关注之前没有显示EditText提示](http://stackoverflow.com/q/30537413/1608670)设计支持库中存在错误`22.2.0` (2认同)
  • 新重命名的依赖项似乎是 `implementation 'com.google.android.material:material:1.0.0-rc01'`。 (2认同)

Dav*_*sen 60

是的,截至2015年5月29日,此功能现在在Android设计支持库中提供

该库包括对该库的支持

  • 浮动标签
  • 浮动动作按钮
  • 小吃店
  • 导航抽屉
  • 和更多

  • 是.https://blog.stylingandroid.com/textinputlayout/和http://code.tutsplus.com/tutorials/creating-a-login-screen-using-textinputlayout--cms-24168和http://hmkcode.com/ Android的textinputlayout / (11认同)
  • 您是否碰巧知道像OP提到的EditTexts的浮动标签教程? (2认同)
  • 第三个是我正在寻找的.我偶然发现了TextInputLayout,但找不到一个好的例子(可能会搜索所有错误的术语).谢谢! (2认同)

ase*_*ims 18

Android支持库可以在依赖项中的gradle中导入:

    compile 'com.android.support:design:22.2.0'
Run Code Online (Sandbox Code Playgroud)

它应该包含在GradlePlease中!并以此为例使用它:

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

    <AutoCompleteTextView
        android:id="@+id/autoCompleteTextViewTo"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="To"
        android:layout_marginTop="45dp"
        />
</android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

顺便说一下,编辑可能不明白TextInputLayout中允许使用AutoCompleteTextView.


ren*_*ian 11

Android尚未提供本机方法.也不是AppCompat.

试试这个库:https://github.com/rengwuxian/MaterialEditText

这可能就是你想要的.


shr*_*ari 9

导入支持库,在项目的build.gradle文件中,在项目的依赖项中添加以下行:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])

    compile 'com.android.support:design:22.2.0'
    compile 'com.android.support:appcompat-v7:22.2.0'
}
Run Code Online (Sandbox Code Playgroud)

在UI布局中使用以下TextInputLayout:

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

    <EditText
        android:id="@+id/username"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="textEmailAddress"
        android:hint="Username"/>

</android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

然后,在setContentView调用之后调用setInputLayout上的setHint,因为要为浮动标签设置动画,只需使用setHint方法设置提示.

final TextInputLayout usernameWrapper = (TextInputLayout) findViewById(R.id.usernameWrapper);
usernameWrapper.setHint("Username");
Run Code Online (Sandbox Code Playgroud)


小智 8

您需要将以下内容添加到您的模块 build.gradle 文件中:

implementation 'com.google.android.material:material:1.0.0'
Run Code Online (Sandbox Code Playgroud)

并在您的 XML 中使用 com.google.android.material.textfield.TextInputLayout :

       <com.google.android.material.textfield.TextInputLayout
            android:id="@+id/text_input_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="@string/my_hint">

        <EditText
            android:id="@+id/editText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="UserName"/>
   </com.google.android.material.textfield.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)