[英]How to get the value of the selected Item in a list in flutter
我有一個小部件列表(具有不同文本子項的容器),我有一個 map 文本。 文本是不同的年齡范圍。
我已經能夠更改所選容器的顏色。
我將如何獲取所選容器中文本的值。
這是列表,
List.generate(
ageRange.length,
(index) {
return AgeSelector(
ageRange: ageRange[index],
textColor: selectedIndex == index ? Colors.white : Colors.black,
containerColor: selectedIndex == index ? kSecondaryColor : Colors.white,
ageChoice: selectedIndex == index ? AgeRange(age: ageRange[index].toString()): Text('none'),
press: () {
setState(() {
selectedIndex = index;
});
},
);
}
),
這是 AgeSelector 小部件,
class AgeSelector extends StatelessWidget {
const AgeSelector({
Key key,
this.ageRange, this.textColor, this.containerColor, this.press, this.ageChoice,
}) : super(key: key);
final AgeRange ageRange;
final Color textColor, containerColor;
final GestureTapCallback press;
final String ageChoice;
@override
Widget build(BuildContext context) {
return InkWell(
onTap: press,
child: Container(
height: getProportionateScreenWidth(80),
width: getProportionateScreenWidth(70),
decoration: BoxDecoration(
color: containerColor,
borderRadius: BorderRadius.circular(15)
),
child: Center(
child: Text(
ageRange.age,
style: TextStyle(
fontSize: getProportionateScreenWidth(22),
color: textColor,
fontWeight: FontWeight.bold
),
),
),
),
);
}
}
這是ageRange Map
class AgeRange {
final String age;
AgeRange({
@required this.age
});
}
List <AgeRange> ageRange = [age1, age2, age3,age4];
AgeRange age1 = AgeRange(
age : "10+"
);
AgeRange age2 = AgeRange(
age : "20+"
);
AgeRange age3 = AgeRange(
age : "30+"
);
AgeRange age4 = AgeRange(
age : "40+"
);
如果我理解正確,您需要將這行代碼添加到您的新聞回調中:
selectedAge = ageRange[index].age;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.