Flutter ListView.builder 单选变化后重新构建内容
您可以在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();
});
},
);
},
)
原文地址: https://www.cveoy.top/t/topic/lQtJ 著作权归作者所有。请勿转载和采集!