9

próbuję zrobić coś w tym kierunku:Pokaż Helper poniżej EditText wraz z Hint

EditText example

jestem w stanie pokazać wskazówkę przy użyciu android:hint="Email Address" ale w stanie wyświetlić tekst pomocnika - ten Twoja nazwa użytkownika będzie email

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

Co ja dostaję tylko i nie Nazwa korzystnie Twój adres email poniżej EditText:

wyjściowa:

output

Wszelkie wskazówki mile widziane. Dziękuję Ci.

+0

Możliwy duplikat [Android dodać tekst zastępczy do EditText] (http://stackoverflow.com/questions/8221072/android-add-placeholder-text-to-edittext) –

+0

„To będzie twój nazwa użytkownika "czy jest to również element zastępczy? – curiousMind

+0

To, czego szukasz, to tekst edycji pływającej etykiety. – noev

Odpowiedz

18

Najlepszym sposobem jest użycie TextInputLayout. Google wprowadził go do nowej biblioteki projektowania. W celu skorzystania z TextInputLayout trzeba dodać następujące swoimi zależnościami build.gradle:

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

następnie używać go w plikach 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> 

Można ustawić swój tekst poprzez ustawienie błąd prawdziwe . Mimo to pokazuje błędy, ale jest odpowiedni do użytku. Możesz zmienić kolor i krój czcionki, jeśli chcesz.

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

enter image description here

+0

Jak mogę zmienić kolor tekstu błędu? –

+3

@AdarshYadav utworzyć niestandardowy styl, który używa '@android: style/TextAppearance' jako rodzic w pliku styles.xml i używać go w widżecie TextInputLayout' app: errorTextAppearance' –

0

miałem podobne pytanie zadawane here. Jeśli chcesz zachować dwa widoki EditText razem zamknięte pionowo w LinearLayout, myślę, że nie ma mowy. Jednym ze sposobów, jak sądzę, jest to, że możesz ustawić androida: grawitację górnego EditText na "bottom" i "top" na niższy EditText. Ale w RelativeLayout To powinno być łatwe.

TextInputLayout może być użyty, jeśli chcesz wyświetlić tekst podpowiedzi (w górnej części EdiText) nawet podczas wpisywania go przez użytkownika. Zazwyczaj ustawienie wskazówki do EditText nie działałoby w ten sposób. Tekst podpowiedzi zniknie po uaktywnieniu widoku, dotykając go.

1

Więc co chcesz to:

Helper Text

Można to osiągnąć za pomocą tej biblioteki:

https://github.com/rengwuxian/MaterialEditText

Można ustawić "tekst pomocnika" atrybut, aby pokazać tekst poniżej linii i "podpowiedź", aby pokazać tekst nad linią. Poniżej znajduje się przykładowy układ dołączonego zdjęcia:

<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"/>