我已经创建了一个这样的列表(外部构建方法):
final userTypes = ["Employee", "Candidate", "Visitor", "Staff"];
我还创建了一个函数来获取这样的选定列表项(外部构建方法):
_onSelected(int index){
setState(() {
selectedIndex = index;
});
}
并且我正在将该函数与这样的listview构建器一起使用(在内部构建方法和支架中):
ListView.builder(
scrollDirection: Axis.vertical,
shrinkWrap: true,
itemCount: userTypes.length,
itemBuilder: (context, index) {
return Container(
color: selectedIndex != null && selectedIndex == index
? Colors.red
: Colors.white,
margin: EdgeInsets.fromLTRB(0, 10, 0, 0),
child: ListTile(
title: Text(userTypes[index],
style: TextStyle(
fontSize: 20, color: Colors.white)),
onTap: _onSelected(index),
),
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(35)),
border: Border.all(
color: Colors.white,
width: 1,
style: BorderStyle.solid)),
);
},
)
答案 0 :(得分:1)
您应该使用
onTap: () => _onSelected(index),
代替
onTap: _onSelected(index),