您可以在setState函数中更新_filteredStringList的值,以便根据每次的单选选择重新构建ListView.builder。例如,可以创建一个名为_selectedValue的变量来存储单选选择的值,然后在setState函数中根据该值重新筛选_filteredStringList,并更新_selectedIndex_selectedValue的值。然后,在ListView.builder中使用_filteredStringList来构建单选列表。以下是示例代码:

int _selectedIndex = -1;
String? _selectedValue;

ListView.builder(
  itemCount: _filteredStringList.length,
  itemBuilder: (BuildContext context, int index) {
    String act = _filteredStringList[index]['act']!;
    String prompt = _filteredStringList[index]['prompt']!;
    return RadioListTile(
      title: Text('行为: $act'),
      subtitle: Text('语句: $prompt'),
      value: index,
      groupValue: _selectedIndex,
      onChanged: (int? value) {
        setState(() {
          _selectedIndex = value!;
          _selectedValue = _filteredStringList[_selectedIndex]['act'];
          _filteredStringList = _originalStringList.where((element) => element['act'] == _selectedValue).toList();
        });
      },
    );
  },
)
Flutter ListView.builder 单选变化后重新构建内容

原文地址: https://www.cveoy.top/t/topic/lQtJ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录