如何在android EditText字段中保留提示文本?

时间:2015-04-23 20:09:05

标签: android android-layout android-edittext

在我的Android应用程序中,我的EditText视图中有一个提示文本。一旦用户开始输入,我希望提示显示在edittext字段的顶部。当用户开始输入时,原始提示文本消失了。如何在edittext字段的顶部放置文本?有没有办法让EditText字段成为多行并使用第一行提示?但用户输入应始终从第二行开始。 enter image description here

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

由android提供的新小部件称为 TextInputLayout ,这是标准方式。以下是它的一个例子:

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

       <EditText
          android:id="@+id/first_edit_text"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:hint="hello"/>
   </android.support.design.widget.TextInputLayout>

答案 1 :(得分:0)

您可以使用FloatLabelLayout。它是一个自定义组件,按照Google文档中的说明运行。

创建自定义组件后,您可以这样使用它:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:app="http://schemas.android.com/apk/res-auto"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent">

    <your.package.FloatLabelLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:floatLabelTextAppearance="@style/TextAppearance.YourApp.FloatLabel">

        <EditText
            android:id="@+id/edit_username"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="@string/account_username_hint"
            android:singleLine="true"
            android:inputType="textNoSuggestions"
            android:imeOptions="actionNext"
            android:nextFocusDown="@+id/edit_password" />

    </your.package.FloatLabelLayout>

    <your.package.FloatLabelLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:floatLabelTextAppearance="@style/TextAppearance.YourApp.FloatLabel">

        <EditText
            android:id="@+id/edit_password"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="@string/account_password_hint"
            android:singleLine="true"
            android:inputType="textNoSuggestions"
            android:imeOptions="actionDone" />

    </your.package.FloatLabelLayout>

</LinearLayout>