core_plugin_flutter

Creator: coderz1093

Last updated:

0 purchases

core_plugin_flutter Image
core_plugin_flutter Images

Languages

Categories

Add to Cart

Description:

core plugin flutter

core_plugin_flutter #
A new flutter plugin project.
Getting Started #
This project is a starting point for a Flutter
plug-in package,
a specialized package that includes platform-specific implementation code for
Android and/or iOS.
For help getting started with Flutter, view our
online documentation, which offers tutorials,
samples, guidance on mobile development, and a full API reference.
flutter_animated_dialog #
A new Flutter dialog with a series of beautiful animations, slide fade rotate size scale rotate3D animations.
Dialog barrier include status bar at the top of screen, solved the problem of default dialog.
demo #

Getting Started #
showAnimatedDialog(
context: context,
barrierDismissible: true,
builder: (BuildContext context) {
return ClassicGeneralDialogWidget(
titleText: 'Title',
contentText: 'content',
onPositiveClick: () {
Navigator.of(context).pop();
},
onNegativeClick: () {
Navigator.of(context).pop();
},
);
},
animationType: DialogTransitionType.size,
curve: Curves.fastOutSlowIn,
duration: Duration(seconds: 1),
);
copied to clipboard
🚀 Roadmap #





default





fade





slideFromTop







slideFromBottom





slideFromBottomFade





slideFromLeft







slideFromLeftFade





slideFromRight





slideFromRightFade







scale





fadeScale





scaleRotate







rotate





rotate3D





size







sizeFade





generalDialog





listSingleSelect







listDialog





listMultipleSelect





customDialog




showAnimatedDialog param #



property
description




context
BuildContext (Not Null)(required)


barrierDismissible
bool (default false)


builder
WidgetBuilder (Not Null)(required)


animationType
DialogTransitionType (default DialogTransitionType.fade)


curve
Curve (default Curves.linear)


duration
Duration (default const Duration(milliseconds: 400))


alignment
AlignmentGeometry (default Alignment.center)



Example #
example

Flutter DropdownSearch



Flutter simple and robust DropdownSearch with item search feature, making it possible to use an offline item list or filtering URL for easy customization.











Key Features •
Examples •
License




Key Features #

Online and offline items
Searchable dropdown
Three dropdown mode: Menu/ BottomSheet/ Dialog
Material dropdown
Easy customizable UI
Handle Light and Dark theme
Easy implementation into statelessWidget


packages.yaml #
dropdown_search: <lastest version>
copied to clipboard
Import #
import 'package:dropdown_search/dropdown_search.dart';
copied to clipboard
Simple implementation #
DropdownSearch<String>(
mode: Mode.MENU,
showSelectedItem: true,
items: ["Brazil", "Italia (Disabled)", "Tunisia", 'Canada'],
label: "Menu mode",
hint: "country in menu mode",
popupItemDisabled: (String s) => s.startsWith('I'),
onChanged: print,
selectedItem: "Brazil"),
copied to clipboard
customize showed field (itemAsString) #
DropdownSearch<UserModel>(
label: "Name",
onFind: (String filter) => getData(filter),
itemAsString: (UserModel u) => u.userAsStringByName(),
onChanged: (UserModel data) => print(data),
),

DropdownSearch<UserModel>(
label: "Name",
onFind: (String filter) => getData(filter),
itemAsString: (UserModel u) => u.userAsStringById(),
onChanged: (UserModel data) => print(data),
),
copied to clipboard
customize Filter Function #
DropdownSearch<UserModel>(
label: "Name",
filterFn: (user, filter) => user.userFilterByCreationDate(filter),
onFind: (String filter) => getData(filter),
itemAsString: (UserModel u) => u.userAsStringByName(),
onChanged: (UserModel data) => print(data),
),
copied to clipboard
customize Search Mode #
DropdownSearch<UserModel>(
mode: Mode.BOTTOM_SHEET,
label: "Name",
onFind: (String filter) => getData(filter),
itemAsString: (UserModel u) => u.userAsString(),
onChanged: (UserModel data) => print(data),
),
copied to clipboard
Validation #
DropdownSearch(
items: ["Brazil", "France", "Tunisia", "Canada"],
label: "Country",
onChanged: print,
selectedItem: "Tunisia",
validator: (String item) {
if (item == null)
return "Required field";
else if (item == "Brazil")
return "Invalid item";
else
return null;
},
);
copied to clipboard
Endpoint implementation (using Dio package) #
DropdownSearch<UserModel>(
label: "Name",
onFind: (String filter) async {
var response = await Dio().get(
"http://5d85ccfb1e61af001471bf60.mockapi.io/user",
queryParameters: {"filter": filter},
);
var models = UserModel.fromJsonList(response.data);
return models;
},
onChanged: (UserModel data) {
print(data);
},
);
copied to clipboard
Layout customization #
You can customize the layout of the DropdownSearch and its items. EXAMPLE



Properties
Description




label
DropDownSearch label


showSearchBox
show/hide the search box


isFilteredOnline
true if the filter on items is applied onlie (via API)


showClearButton
show/hide clear selected item


items
offline items list


selectedItem
selected item


onFind
function that returns item from API


onChanged
called when a new item is selected


dropdownBuilder
to customize list of items UI


popupItemBuilder
to customize selected item


validator
function to apply the validation formula


searchBoxDecoration
decoration for the search box


popupBackgroundColor
background color for the dialog/menu/bottomSheet


popupTitle
Custom widget for the popup title


itemAsString
customize the fields the be shown


filterFn
custom filter function


enabled
enable/disable dropdownSearch


mode
MENU / DIALOG/ BOTTOM_SHEET


maxHeight
the max height for dialog/bottomSheet/Menu


dialogMaxWidth
the max width for the dialog


showSelectedItem
manage selected item visibility (if true, the selected item will be highlighted)


compareFn
Function(T item, T selectedItem), custom comparing function


dropdownSearchDecoration
DropdownSearch input decoration


emptyBuilder
custom layout for empty results


loadingBuilder
custom layout for loading items


errorBuilder
custom layout for error


autoFocusSearchBox
the search box will be focused if true


popupShape
custom shape for the popup


autoValidateMode
handle auto validation mode


onSaved
An optional method to call with the final value when the form is saved via


validator
An optional method that validates an input. Returns an error string to display if the input is invalid, or null otherwise.


clearButton
customize clear button widget


dropDownButton
customize dropdown button widget


dropdownBuilderSupportsNullItem
If true, the dropdownBuilder will continue the uses of material behavior. This will be useful if you want to handle a custom UI only if the item !=null


popupItemDisabled
defines if an item of the popup is enabled or not, if the item is disabled, it cannot be clicked


popupBarrierColor
set a custom color for the popup barrier


searchBoxController
search box controller



Attention #
To use a template as an item type, and you don't want to use a custom fonction itemAsString and compareFn you need to implement toString, equals and hashcode, as shown below:
class UserModel {
final String id;
final DateTime createdAt;
final String name;
final String avatar;

UserModel({this.id, this.createdAt, this.name, this.avatar});

factory UserModel.fromJson(Map<String, dynamic> json) {
if (json == null) return null;
return UserModel(
id: json["id"],
createdAt:
json["createdAt"] == null ? null : DateTime.parse(json["createdAt"]),
name: json["name"],
avatar: json["avatar"],
);
}

static List<UserModel> fromJsonList(List list) {
if (list == null) return null;
return list.map((item) => UserModel.fromJson(item)).toList();
}

///this method will prevent the override of toString
String userAsString() {
return '#${this.id} ${this.name}';
}

///this method will prevent the override of toString
bool userFilterByCreationDate(String filter) {
return this?.createdAt?.toString()?.contains(filter);
}

///custom comparing function to check if two users are equal
bool isEqual(UserModel model) {
return this?.id == model?.id;
}

@override
String toString() => name;
}
copied to clipboard
View more Examples #

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product:

Customer Reviews

There are no reviews.