InputFormTextInputLayout
InputFormTextInputLayout is a material design TextInputLayout
which has a TextInputEditText
as child. As an extension of TextInputLayout
it allows all the functionality and configuration described in material design text fields.
InputFormTextInputLayout acts as base class for the others InputFormFields based on a TextInputLayout
. This class handles the validation of the field via an InputValidator
and it has these extra configurations:
- isMandatory (false by default): if set to true, this field is not valid if let empty.
- validateWhenFocusLost (true by default): if set to true, this field will trigger the validation when the user moves to the next field.
- emptyErrorText: allows to change the default error message when the fields is mandatory and it is empty.
It also exposes imeOptions
and inputType
from its internal TextInputEditText
.
Style
By default, the Android PoqSDK uses OutlinedBox
style. If you want to change the style of all InputFormTextInputLayout, override the XML property BaseInputFormTextInputLayoutMaterialStyle
to extend the appropriate material design style. For example, to change the default style to FilledBox
, you need to replace this:
<style name="BaseInputFormTextInputLayoutMaterialStyle" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox"/>
with this:
<style name="BaseInputFormTextInputLayoutMaterialStyle" parent="Widget.MaterialComponents.TextInputLayout.FilledBox"/>
Usage
You can set it up in the layout:
<com.poqstudio.platform.view.account.inputform.ui.PoqInputFormTextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="YourHint" android:imeOptions="actionNext" android:inputType="textCapWords" android:text="@={viewModel.text}" // It allows two-way data binding app:emptyErrorText="empty error message" app:endIconMode="clear_text" app:isMandatory="true" // False by default app:validateWhenFocusLost="true" /> // True by default