Comments (5)
Hi @projetoswmltda ,
This is great news for searchable_dropdown
, we should definitely give your fix a try whenever possible, thanks!
from searchable_dropdown.
Dear @projetoswmltda ,
Thanks for reporting your issue.
I understand that a second widget is clearing the selected value of a first widget. If so, could it be that the following comment could help you?
#29 (comment)
from searchable_dropdown.
Thanks for the quick feedback @lcuis , I managed to solve it by merging the code of your search_choices library with a small change.
Follows merged code (searchable_dropdown x search_choices):
updateSelectedItems({dynamic sel = const NotGiven()}) {
List<int> updatedSelectedItems;
if (widget.multipleSelection) {
if (!(sel is NotGiven)) {
updatedSelectedItems = sel as List<int>;
} else {
updatedSelectedItems =
List<int>.from(widget.selectedItems ?? List<int>());
}
} else {
T val = !(sel is NotGiven) ? sel as T : widget.value;
if (val != null) {
int i = indexFromValue(val);
if (i != null && i != -1) {
updatedSelectedItems = [i];
}
} else {
updatedSelectedItems = null;
}
if (updatedSelectedItems == null) updatedSelectedItems = List<int>();
}
if (!widget.multipleSelection) {
selectedItems.retainWhere((element) =>
updatedSelectedItems.any((selected) => selected == element));
}
updatedSelectedItems.forEach((selected) {
if (!selectedItems.any((element) => selected == element)) {
selectedItems.add(selected);
}
});
}
@override
void initState() {
if (widget.multipleSelection) {
selectedItems = List<int>.from(widget.selectedItems ?? []);
} else if (widget.value != null) {
int i = indexFromValue(widget.value);
if (i != null && i != -1) {
selectedItems = [i];
}
}
if (selectedItems == null) selectedItems = [];
updateSelectedItems();
super.initState();
}
@override
void didUpdateWidget(SearchableDropdown oldWidget) {
super.didUpdateWidget(oldWidget);
updateSelectedItems();
}
After when have time, review a fix I made to resolve a problem in multiple selection of search_choices library in updateSelectedItems method:
if (!widget.multipleSelection) {
selectedItems.retainWhere((element) =>
updatedSelectedItems.any((selected) => selected == element));
}
Thanks again
from searchable_dropdown.
Hello @projetoswmltda ,
Thanks a lot for your reply and for the fix proposal and for sharing your code!
With this code, you were able to solve your issue while still using searchable_dropdown
?
from searchable_dropdown.
Hi @lcuis, I actually tried it with both widgets, but it only worked on searchable_dropdown
I know that the code may still need some adjustments, but this way it works for me
from searchable_dropdown.
Related Issues (20)
- Selcted value is not changes if I give preselected value HOT 6
- Search is not working when i use value as Id inside onChanged
- How to get the selected value not index in multiple?
- Search is not working when, I use value as Id Int inside Value DropdownMenuItem HOT 1
- Provide async call to API on typing search HOT 1
- null safety HOT 1
- Clear the selected value programatically
- Is it possible to reduce the popup size like height , width after dropdown is opened HOT 1
- selectedItems how to get values in string instead of id in numbers HOT 1
- When dropdown is clicked, UI should not get expanded, the items should display like normal dropdown effect HOT 1
- By default selected initial value HOT 1
- Add the ability to put hints in dialog search
- Need support for search delay (debounce) HOT 4
- Remove default padding HOT 2
- In multiple select option is not working properly
- Failed to build iOS app
- Compilation failed Flutter 2.5.0 HOT 7
- The getter 'subhead' isn't defined for the class 'TextTheme' - Cannot Debug/Run Flutter App HOT 13
- Can you update library to version 2 with null safty? HOT 1
- error HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from searchable_dropdown.