Text Field

Según la documentación de Google sobre Material Design.

Los campos de texto permiten al usuario a introducir texto, seleccionarlo (copiar, cortar y pegar) y buscardatos por auto-completado.

¿Cómo se añade?

I. En tu archivo build.gradle añade la última versión de appcompat.

dependencies {  
    compile 'com.android.support:appcompat-v7:X.X.X' 
    // X.X.X especifica la versión
}

II. Haz que tu actividad extienda de android.support.v7.app.AppCompatActivity.

public class MainActivity extends AppCompatActivity {  
    ...
}

III. Declara tu EditText dentro de cualquier archivo de layout, layout.xml.

<EditText  
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="Hint text"/>

¿Cómo modificar el estilo?

I. Declara tu estilo personalizado dentro del archivo de estilos styles.xml.

<style name="MyEditText" parent="Theme.AppCompat.Light">  
    <item name="colorControlNormal">@color/indigo</item>
    <item name="colorControlActivated">@color/pink</item>
</style>  

II. Aplica este estilo a tu EditText con el atributo android:theme.

<EditText  
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="Hint text"
    android:theme="@style/MyEditText"/>

Errores de compatibilidad

I. El ancho y el alineamiento vertical del EditText son diferentes.

Android 4.4

Android 5.0

Android 5.1

II. La linea de fondo no es transparente en Android 4.0 - 4.4 / 6.0, es semi transparente en Android 5.0 / 5.1.

Single-line text field

From google material design documentation.

Los campos de una sola línea automáticamente scrollean su contenido a la izquierda cuando el cursor de entrada de texto llega al límite derecho del componente.

Para hacer que tu EditText de una sola línea añade el atributo android:singleLine con valor a true.

<EditText  
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:singleLine="true"
    android:hint="Hint text"/>

Multi-line text field

Según la documentación de Google sobre Material Design.

Los campos de texto con múltiples líneas automáticamente se parte para una nueva línea para el texto sobrante y hace scroll vertical cuando el cursor alcanza el límite inferior.

Para que un EditText sea multi-línea añade el atributo android:inputType con el valor textMultiLine.

<EditText  
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:inputType="textMultiLine"
    android:hint="Hint text"/>

Full-width text field

Según la documentatión de Google sobre Material Design.

I. Declara tu estilo personalizado en el archivo de estilos styles.xml.

<style name="FullWidthEditText" parent="Widget.AppCompat.EditText">  
    <item name="android:padding">20dp</item>
    <item name="android:background">@null</item>
    <item name="android:textSize">@dimen/abc_text_size_subhead_material</item>
</style>  

II. Aplica este estilo a tu EditText con el atributo style .

<EditText  
    style="@style/FullWidthEditText"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="Subject"/>

Este artículo fue originalmente escrito por Dmytro Danylyk en MaterialDoc