#sqlite #flutter #dropdownbutton
#sqlite #трепетание #dropdownbutton
Вопрос:
Я создал красивую DropDownButton в своем приложении flutter, но мне было трудно выяснить, как на самом деле ее использовать.
Как я могу извлечь выбранное значение?
Я хочу использовать его для обновления настроек моей панели поиска. Когда пользователь выбирает ‘1’, строка поиска должна выполнять поиск по определенному столбцу в моей базе данных Sqlite, когда они выбирают ‘2’, он должен выполнять поиск по другим столбцам. После извлечения значения лучше всего сделать мой оператор if / else над строкой поиска или в той части моего кода, которая сообщает, как выполнить поиск в базе данных?
Ответ №1:
Попробуйте это:
search_page.dart
class SearchingPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MyBeautifulDropdownPage(
myIfElseFunction: (value) {
print('selected value is $value');
if(value =='1'){
_searchASpecificColumnInMySqliteDb();
}else if (value == '2'){
_searchTheOtherColumnInMySqliteDb();
}
},,
);
}
}
my_beautiful_dropdown.dart
class MyBeautifulDropdownPage extends StatelessWidget {
final Function(String) myIfElseFunction;
const MyBeautifulDropdownPage({Key key, this.myIfElseFunction}) : super(key: key);
@override
Widget build(BuildContext context) {
return new DropdownButton<String>(
items: <String>['1', '2'].map((String value) {
return new DropdownMenuItem<String>(
value: value,
child: new Text(value),
);
}).toList(),
onChanged: myIfElseFunction
),
}
}
В выпадающем списке вы можете получить значение выбранного столбца с onChanged
свойством. Туда вы можете поместить свой оператор if
Комментарии:
1. Я написал выпадающее меню на отдельной странице и вставил его в качестве виджета. Есть ли способ записать что-нибудь в OnChanged, чтобы на моей странице поиска я мог использовать значение и написать там свое if / else?
2. @BillWatts уверен, что это возможно. проверьте мой отредактированный ответ