Flutter Widget构建不正确

时间:2018-10-28 19:24:48

标签: dart widget flutter

我有一个名为Horizo​​ntalList的自定义小部件,该小部件接收列表并水平显示。

我已经创建了一个垂直列表,其行由这些水平列表组成。

我的问题是,即使传递到每个水平列表的列表与其他列表不同,呈现的所有行也与使用相同列表构建窗口小部件的情况相同。

我签入了小部件本身的构造函数,并且数据正确,但是渲染时出了点问题。

小部件构造函数:

@Override
protected void onPostExecute(Boolean result) {
    super.onPostExecute(result);
    Log.d("TAG", "result" + result);

    ...... (Over Here)

}

小部件构建:

HorizontalList(List<RestInfos> infos){


_rests = new List<RestInfos>();
_rests = infos;

print("horizontal list "+ _rests.length.toString());
if(_rests.length != 0)
 print("horizontal list 1: " + _rests.elementAt(0).name);
}

在主页上,我尝试构建这样的小部件:

child: new ListView(
      scrollDirection: Axis.horizontal,
      children: new List <Widget>.generate(_rests.length, (int index) {

        if(_rests.length == 0) {
          //return null;
          return new Card();
        }

        print("hotizontal " + _rests.length.toString());
        print("indice "+ index.toString());
        print("nome " + _rests.elementAt(index).name);

        return new GestureDetector(

          child:
           new Card(...)
     )

1 个答案:

答案 0 :(得分:0)

我发现我使用的构造函数正在“破坏”网站的呈现。

我严格按照文档here中的说明进行操作,并将代码更改为以下代码:

class HorizontalList extends StatelessWidget {
const HorizontalList({Key key, @required this.infoList}) : super(key: key);

final List<Infos> infoList;

@override
Widget build(BuildContext context) {
   ...
}

实际上这很奇怪,因为我在应用程序的其他位置使用了旧方法,没有造成任何问题。

无论如何,这解决了我的问题。