Flutter 颤振从下拉列表中添加表中的元素
我正试着自己学习颤振,我有一个关于按钮结构的问题 简单地说,我想在表中添加一些项目,用户可以从可搜索的下拉菜单中选择这些项目 问题是我添加了表,而没有首先从下拉列表中选择 下面是它的外观以及代码:Flutter 颤振从下拉列表中添加表中的元素,flutter,dart,mobile,Flutter,Dart,Mobile,我正试着自己学习颤振,我有一个关于按钮结构的问题 简单地说,我想在表中添加一些项目,用户可以从可搜索的下拉菜单中选择这些项目 问题是我添加了表,而没有首先从下拉列表中选择 下面是它的外观以及代码: 列出产品; 列出所选产品; 布尔排序; RelatedProductComboBox\u selectedPlatformReach; 列表\u平台范围= RelatedProductComboBox.getRelatedProduct(); 列表\u下拉平台范围; @凌驾 void initSta
列出产品;
列出所选产品;
布尔排序;
RelatedProductComboBox\u selectedPlatformReach;
列表\u平台范围=
RelatedProductComboBox.getRelatedProduct();
列表\u下拉平台范围;
@凌驾
void initState(){
排序=假;
选定产品=[];
products=Product.getProducts();
_升降平台河段=
buildDropdownMenuItemsRelatedProduct(_platformReach);
_selectedPlatformReach=\u dropdownPlatformReach[0]。值;
super.initState();
}
onSelectedRow(布尔选定,产品)异步{
设置状态(){
如果(选定){
选择产品。添加(产品);
}否则{
所选产品。删除(产品);
}
});
}
deleteSelected()异步{
设置状态(){
如果(selectedProducts.isNotEmpty){
列表温度=[];
临时添加所有(选定产品);
用于(温度中的产品){
产品。移除(产品);
所选产品。删除(产品);
}
}
});
}
SingleChildScrollView dataRelatedProduct(){
返回SingleChildScrollView(
滚动方向:轴垂直,
子:列(
儿童:[
数据表(
排序:排序,
sortColumnIndex:0,
栏目:[
数据列(
标签:文本(“名称”),
数字:false,
),
],
行:产品
.地图(
(产品)=>DataRow(
已选:已选产品。包含(产品),
(b){
打印(“Onselect”);
onSelectedRow(b,产品);
},
单元格:[
数据单元(
可搜索下拉列表(
是的,
值:_selectedPlatformReach,
项目:_dropdownPlatformReach,
isCaseSensitiveSearch:错误,
一旦更改:
(选择相关产品组合框PlatformReach){
设置状态(){
_selectedPlatformReach=selectedPlatformReach;
});
},
),
),
],
),
)
.toList(),
),
],
),
);
}
List<Product> products;
List<Product> selectedProducts;
bool sort;
RelatedProductComboBox _selectedPlatformReach;
List<RelatedProductComboBox> _platformReach =
RelatedProductComboBox.getRelatedProduct();
List<DropdownMenuItem<RelatedProductComboBox>> _dropdownPlatformReach;
@override
void initState() {
sort = false;
selectedProducts = [];
products = Product.getProducts();
_dropdownPlatformReach =
buildDropdownMenuItemsRelatedProduct(_platformReach);
_selectedPlatformReach = _dropdownPlatformReach[0].value;
super.initState();
}
onSelectedRow(bool selected, Product product) async {
setState(() {
if (selected) {
selectedProducts.add(product);
} else {
selectedProducts.remove(product);
}
});
}
deleteSelected() async {
setState(() {
if (selectedProducts.isNotEmpty) {
List<Product> temp = [];
temp.addAll(selectedProducts);
for (Product product in temp) {
products.remove(product);
selectedProducts.remove(product);
}
}
});
}
SingleChildScrollView dataRelatedProduct() {
return SingleChildScrollView(
scrollDirection: Axis.vertical,
child: Column(
children: <Widget>[
DataTable(
sortAscending: sort,
sortColumnIndex: 0,
columns: [
DataColumn(
label: Text("Name"),
numeric: false,
),
],
rows: products
.map(
(product) => DataRow(
selected: selectedProducts.contains(product),
onSelectChanged: (b) {
print("Onselect");
onSelectedRow(b, product);
},
cells: [
DataCell(
SearchableDropdown(
isExpanded: true,
value: _selectedPlatformReach,
items: _dropdownPlatformReach,
isCaseSensitiveSearch: false,
onChanged:
(RelatedProductComboBox selectedPlatformReach) {
setState(() {
_selectedPlatformReach = selectedPlatformReach;
});
},
),
),
],
),
)
.toList(),
),
],
),
);
}