2015-04-23 1 views
1

В моем приложении Android у меня есть текст подсказки в моем представлении EditText. Когда пользователь начнет печатать, я хочу, чтобы подсказка отображалась поверх поля edittext. Исходный текст подсказки исчезает, когда пользователь начинает печатать, что хорошо. Как разместить текст поверх поля edittext? Есть ли способ сделать поле EditText многострочным и использовать первую строку для подсказки? Но вход пользователя всегда должен начинаться со второй строки. enter image description hereКак сохранить текст подсказки в поле EditText android?

Заранее благодарим за вашу помощь!

+0

Добавить текст сверху и настроить его на исчезновение или невидимость. Когда пользователь начинает вводить текст, установите видимость tv на видимый – jb15613

ответ

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> 
1

Там новый виджет обеспечить с помощью андроида под названием 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> 
+0

. При вводе текста возникает проблема с этим ответом, и подсказка исчезает. Я использую 26.0.2 –

 Смежные вопросы

  • Нет связанных вопросов^_^