我有一个名为My List的变更符中的列表.这个列表包含一个名为listitem的类,它是这个演示中的两个变量,分别称为变量1和变量2.下面是我的列表和Listitem类.

List<ListItem> MyList = [
ListItem(
      variable1: 2,
      variable2: true),
  ListItem(
      variable1: 5,
      variable2: false),
  ListItem(
      variable1: 1,
      variable2: true),
  ListItem(
      variable1: 7,
      variable2: true),
  ListItem(
      variable1: 2,
      variable2: false),
  ListItem(
      variable1: 3,
      variable2: true),
];

class ListItem {
  int variable1;
  bool variable2;
  

  ListItem({
    required this.variable1,
    required this.variable2,
    
  });
}


在我的UI页面中,我使用ListView.Builder创建了一个平铺列表,我想要发生的是,当从列表视图中按下按钮时,我希望它更新更改通知器中的一组变量.(这个变化指示器也是列表所在的地方.

因此,在我的更改通知程序中,我有以下内容:

class MyProvider extends ChangeNotifier {

int _variable1 = 0;
bool _variable2 = false;

int get variable1 => _variable1;
bool get variable2 => _variable2;

void UpdateList(ListItem index){
_variable1 = MyList[index.variable1].variable1;
_variable2 = MyList[index.variable2].variable2;
    notifyListeners();
}

List<ListItem> MyList = [
ListItem(
      variable1: 2,
      variable2: true),
  ListItem(
      variable1: 5,
      variable2: false),
  ListItem(
      variable1: 1,
      variable2: true),
  ListItem(
      variable1: 7,
      variable2: true),
  ListItem(
      variable1: 2,
      variable2: false),
  ListItem(
      variable1: 3,
      variable2: true),
];

}

因此,当按下UI中的按钮时,它会运行UpdateList函数,但changeNotify中的bool和int变量不会更新为该 Select 的ListItem中所表示的内容.

非常感谢,任何帮助都将不胜感激.

推荐答案

您应该将您的方法更改为这个,以更新MyProvider中的变量. 在DART中需要注意使用lowerCamelCase作为方法和变量名称:

void updateList(ListItem item) {
  _variable1 = item.variable1;
  _variable2 = item.variable2;
  notifyListeners();
}

在您的页面中,当您想要更新列表时,使用您的提供者的updateList方法,并将所选的ListItem作为其参数传递.

如果你有任何问题,请提出来.

快乐的编码...

Flutter相关问答推荐

flutter:如何将字体大小设置得更大(更大)

ListTile未正确显示在flutter中

为什么他们实例化类,然后丢弃该实例?

ProviderContainer和GoRouter

使用Future函数的容器中未显示图像,但在使用图像小工具时显示

无法在我的Flutter 应用程序中使用GoRouter测试导航

Flex ListView用于可滚动和响应的页面

如何在Flutter 中共享选定文本

如何使排内 children 的身高与其他排内 children 的身高相适应?

Flutter-Riverpod:如何只从提供者读取一次值

如何在点击查看措辞下方添加句子?

Flutter Web Dio XMLHttpRequest 上传大文件时出错

如果其他Provider 的帐户已存在,如何阻止用户登录?

无法在 ListView (Flutter) 中限制 Card 的最大宽度

Flutter - 根据从第一个 DropdownButtonForm 中 Select 的内容在第二个 DropdownButton 上显示选项

为什么轮播加载图片很慢?

如何在 flutter 的alert 对话框中实现进度指示器?

如何使用列Flutter 中文本占用的空间来控制svg宽度

Flutter 平台通道将多数据传递给 windows 功能

Textfield 和 MasonryGrid 给出错误(垂直视口的高度没有限制)