In this tutorial, we’ll implement Text Fields using the new Material Design Components Library.

We have already implemented TextInputLayout here.

Material TextFields

TextInputLayout provides an implementation for Material text fields. We just need to use TextInputEditText!
First and foremost, import the new material components dependency. Also, set the MaterialComponent theme in your Activity.

By default, an input text field has a filled background to draw users attention.

Now let’s create a default text field:

In the next few sections, we’ll customize text fields in different ways.

Standard and Dense Text Fields

Text Fields have two types of height variants:

  • Standard – This is used by default if nothing else is there.
  • Dense@style/Widget.MaterialComponents.TextInputLayout.FilledBox.Dense

The dense Text field is slightly shorter in height.

By default the FilledBox.Standard style is used
app:boxBackgroundColor is used to set the filled box color.

Here’s how this looks on the screen:

android-material-text-field-dense-standard-filled-box

 

Android Material Text Field Dense Standard Filled Box

Outline Box Text Fields

Apply the following style on the TextInputLayout to get the outlined look text fields:

Similar to FilledBox, this has the two height variants as well – Standard and Dense.
To set the corner radius, following attributes are used:

  • boxCornerRadiusTopStart
  • boxCornerRadiusTopEnd
  • boxCornerRadiusBottomStart
  • boxCornerRadiusBottomEnd

boxStrokeColor is used to set the stroke color of the outline.

Here’s how it looks:

 

Android Material Text Field Outlined Box

End Icon Modes

Moving forward, now let’s set end icon modes.
These are basically icons set at the right of the text field.
Currently, the three types of icons that are available built-in are :

  • password_toggle
  • clear_text
  • custom

The above attributes are self-explanatory.

We can set our own icon tint on these icons using endIconTint attribute.
For the custom icon, we use the endIconDrawable attribute

Here’s how it looks on the screen:

android-material-text-field-end-icons

 

Android Material Text Field End Icons

For the custom icon, we can use setEndIconOnClickListener callback to listen to clicks and do stuff.

Shaped Text Fields

ShapeAppearance is a powerful style. It lets us customize the shape of the text field.
We have two built-in shapes – cut and round.

Setting the above styles in the shapeAppearance attributes gives us this –

 

Android Material Text Field Shapes

That sums up Material Components Text Fields for now. In the below source code you’ll find all the above concepts.

By admin

Leave a Reply

%d bloggers like this: