Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.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 将类中成员的名称作为参数传递给函数_Flutter_Dart - Fatal编程技术网

Flutter 将类中成员的名称作为参数传递给函数

Flutter 将类中成员的名称作为参数传递给函数,flutter,dart,Flutter,Dart,我想做一个非常通用的小部件,我可以给它任何我想要的对象。在这个小部件中,根据我给它的对象,我需要用一个文本小部件来表示这个对象。我的问题是,我要使用的对象没有所有相同的成员名称。假设在一种情况下,我将给对象胡萝卜,在这种情况下,我想在文本小部件中显示名为“name”的成员,但在另一种情况下,我可以给它对象模板,在这种情况下,我想显示成员“code”。它们永远都是弦型的。因此,在小部件中,“titre”部分将替换为我想要显示的内容 class DialogDropdown extends Stat

我想做一个非常通用的小部件,我可以给它任何我想要的对象。在这个小部件中,根据我给它的对象,我需要用一个文本小部件来表示这个对象。我的问题是,我要使用的对象没有所有相同的成员名称。假设在一种情况下,我将给对象胡萝卜,在这种情况下,我想在文本小部件中显示名为“name”的成员,但在另一种情况下,我可以给它对象模板,在这种情况下,我想显示成员“code”。它们永远都是弦型的。因此,在小部件中,“titre”部分将替换为我想要显示的内容

class DialogDropdown extends StatelessWidget with TextStylesHelper{
  final SizingInformation _sizeInfo;
  final Function _onChanged;
  final List _objectList;

  DialogDropdown(
    this._sizeInfo,
    this._onChanged,
    this._objectList,
  );

  @override
  Widget build(BuildContext context) {
    return Dialog(
      shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10.0)),
      child: ListView.separated(
          itemBuilder: (context, index) {
            var item = _objectList[index];
            return ListTile(
              title: Text('titre', style: labelTextStyle(_sizeInfo.scaleFactor),),
              onTap: (){
                Navigator.pop(context, item);
              },
            );
          },
          separatorBuilder: (context, index) => Divider(
                thickness: 1.5,
                height: _sizeInfo.screenSize.height / 40,
              ),
          itemCount: _objectList.length,
       ),
    );
  }
}

希望您能帮助我。

所有对象都应该实现toString()覆盖,并显示一些有意义的内容。您还可以实现一个抽象基类,并强制所有派生类实现例如name属性。您的小部件应该更改为一个模板
类,该类使用TextStylesHelper{{

回调
onChange
也必须模板化
typedef void OnChange(T newValue);
。 对于
列表