Enhanced Entry for Xamarin Forms
A simple extended Xamarin Forms Entry with custom behaviours.
Setup
Available on NuGet: https://www.nuget.org/packages/LeoJHarris.XForms.Plugin.EnhancedEntry NuGet Install into your Xamarin.Forms project including client project i.e. .Android, .iOS etc.
Gif Demo
Sample Code
https://github.com/LeoJHarris/EnhancedEntry/blob/master/SampleApp/SampleApp/Page1.xaml.cs
Usage
You must do this AFTER you call Xamarin.Forms.Init();
In your Android
Xamarin.Forms.Init();
LeoJHarris.FormsPlugin.Droid.EnhancedEntryRenderer.Init(this);In your iOS
Xamarin.Forms.Forms.Init();
LeoJHarris.FormsPlugin.iOS.EnhancedEntryRenderer.Init();
LoadApplication(new App());XAML
First add the xmlns namespace:
xmlns:enhancedEntry="clr-namespace:LeoJHarris.FormsPlugin.Abstractions;assembly=LeoJHarris.FormsPlugin.Abstractions"Then add the xaml (or just use the code behind)
Bindable Properties
LeftIcon
Places an icon to the left inside the entry, icons to be placed inside respective drawable folders and iOS in the resources files, set the PaddingLeftIcon for padding space between icon and entry text.
BorderWidth
Must be set for respective bindables such as CornerRadius, FocusBorderColor etc.
FocusBorderColor
When the entry has focus otherwise the BorderColor will be set when off focus.
-
BackgroundColor -
LeftPadding, TopBottomPadding and RightPadding
Desired padding between the Entry text and the edge of the Entry.
ReturnKeyType
Displayed for the keyboard action button. Run time exception will be thrown if unsupported on platform.
NextEntry
Entry that will be given focus when keyboard action button pressed and keyboard ReturnKeyType is type - Next, otherwise if GoToNextEntryOnLengthBehaviour has been added and condition is satisfied.
KeyBoardAction
Given command parameter to execute when keyboard action button pressed and ReturnKeyType is type - Done.
Custom Behaviours
PasswordCompareValidationBehavior
Compare entries given some condition checks. Each entry should contain in the collection PasswordCompareValidation the entries to compare (see examples above), additional bindable properties include ValidColor and InValidColor that apply if there is or isn't a match between the collection of Entries.
PLEASE NOTE: Although these bindable properties are set per entry, they should all have the same values for all entries to check in the collection. You are able to set the MinimumLength of the passwords. Currently the password validation requires an uppercase, lowercase and a number, therefore the minimum length can be set.
EmailValidatorBehavior
Used for emails. The EmailRegularExpression bindable property can be overridden if desired.
GoToNextEntryOnLengthBehaviour
Sets focus to the NextEntry on the given CharacterLength. In addition required to set MaxLengthValidator i.e. MaxLength="1" to ensure that the entry doesn't exceed the CharacterLength
ShowHiddenEntryEffect
Toggles visibility of text with type password. Use Effects = { new ShowHiddenEntryEffect() }
MaskedBehavior
Applies a mask to the Entry. Bindable properties InValidColor and ValidColor can be set to update the color for of the drawable image within the Entry. Please set LeftIcon to enable this. Refer to docs.
License
Licensed under MIT, see license file
As with any open source project if you see improvements feel free to add your PR's
