flutter_dynamic_filter 0.0.5
flutter_dynamic_filter: ^0.0.5 copied to clipboard
A Flutter package for creating dynamic filters in your apps. Easily customize and apply filters to display or manage data flexibly and efficiently.
Document Flutter Dynamic Filter #
Preview Link 🔗 #
Setup for filter #
Create varriable
final ValueNotifier<Set<FieldSortOrder>> sortOrders = ValueNotifier({});
final ValueNotifier<List<FieldAdvancedFilter>> advancedFilter = ValueNotifier([]);
Init example Data
late final List<Map<String, dynamic>> originExampleData;
late final ValueNotifier<List<Map<String, dynamic>>> exampleDataSearch;
@override
void initState() {
originExampleData = ExampleData.generateExampleData();
exampleDataSearch = ValueNotifier(originExampleData);
super.initState();
}
Widget
// Sort Button
SizedBox(
width: 130,
child: SortAnchor.button(
sortOrders: sortOrders,
fields: ExampleData.fields,
onChanged: (sortOrders) {
final filterEngine = FilterEngine(
data: originExampleData,
sortOrders: sortOrders,
);
final result = filterEngine.sortList();
exampleDataSearch.value = result;
},
),
),
// Filter Button
SizedBox(
width: 130,
child: AdvancedFilterAnchor.button(
advancedFilter: advancedFilter,
fields: ExampleData.fields,
onChanged: (advancedFilter) {
final filterEngine = FilterEngine(
data: originExampleData,
filterGroup: FilterGroup(name: "My Filter", rules: advancedFilter),
);
final result = filterEngine.filterList();
exampleDataSearch.value = result;
},
),
),
// Sort & Filter
SizedBox(
width: 130,
child: ElevatedButton(
child: const Text("Apply Filter and Sort"),
onPressed: () {
final filterEngine = FilterEngine(
data: originExampleData,
filterGroup: FilterGroup(name: "Name of your filter", rules: advancedFilter.value),
sortOrders: sortOrders.value,
);
final result = filterEngine.applyFilterAndSort();
exampleDataSearch.value = result;
},
),
)