Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 带图像的Fatter自定义无线电小部件_Flutter_Dart - Fatal编程技术网

Flutter 带图像的Fatter自定义无线电小部件

Flutter 带图像的Fatter自定义无线电小部件,flutter,dart,Flutter,Dart,我正在尝试创建一个带有图像的自定义无线电小部件。问题:假设我需要一个组中的图像,当用户单击它时,它会发生变化,以显示此特定按钮已激活。我如何实现这一点 class _RadioWidgetState extends State<RadioWidget> { int _radioValue = 0; void _handleRadio(int value) { setState(() { _radioValue = value; switch (

我正在尝试创建一个带有图像的自定义无线电小部件。问题:假设我需要一个组中的图像,当用户单击它时,它会发生变化,以显示此特定按钮已激活。我如何实现这一点

class _RadioWidgetState extends State<RadioWidget> {
  int _radioValue = 0;
  void _handleRadio(int value) {
    setState(() {
      _radioValue = value;
      switch (_radioValue) {
        case 0:
        break;
        case 1:
          break;
        case 0:
          break;
      }
    });
  }

  @override
  Widget build(BuildContext context) {
    return Row(mainAxisAlignment: MainAxisAlignment.center, children: [
      Expanded(
        child: GestureDetector(
          onTap: () => setState(() {
            _radioValue = 0;
            print(_radioValue);
            _handleRadio(0);
          }),
          child: Container(child: Image.asset('assets/images/asset1.png')),
        ),
      ),
      Expanded(
        child: GestureDetector(
          onTap: () => setState(() {
            _radioValue = 1;
            print(_radioValue);
          }),
          child: Container(child: Image.asset('assets/images/asset2.png')),
        ),
      ),
      Expanded(
        child: GestureDetector(
          onTap: () => setState(() {
            _radioValue = 2;
            print(_radioValue);
          }),
          child: Container(child: Image.asset('assets/images/asset3.png')),
        ),
      ),
    ]);
  }
}
class\u RadioWidgetState扩展状态{
int _radioValue=0;
void_handleRadio(int值){
设置状态(){
_放射性值=放射性值;
开关(_radioValue){
案例0:
打破
案例1:
打破
案例0:
打破
}
});
}
@凌驾
小部件构建(构建上下文){
返回行(mainAxisAlignment:mainAxisAlignment.center,子项:[
扩大(
儿童:手势检测器(
onTap:()=>设置状态(){
_放射性值=0;
打印(_radioValue);
_handleRadio(0);
}),
子:容器(子:Image.asset('assets/images/asset1.png'),
),
),
扩大(
儿童:手势检测器(
onTap:()=>设置状态(){
_放射性值=1;
打印(_radioValue);
}),
子:容器(子:Image.asset('assets/images/asset2.png'),
),
),
扩大(
儿童:手势检测器(
onTap:()=>设置状态(){
_放射性值=2;
打印(_radioValue);
}),
子:容器(子:Image.asset('assets/images/asset3.png'),
),
),
]);
}
}

使用_radioValue更改图像

child: Container(child: Image.asset(_radioValue == 0 
  ? 'assets/images/asset1_selected.png' 
  : 'assets/images/asset1.png')
),