Dart 在ListView项目中使用嵌套列和行滚动jank
这个代码有问题。列表中的每个项目都是一行,包含两列文本。即使在发布模式下,这也会导致性能大幅下降。目前正在尝试为帖子构建Reddit风格的布局。使用嵌套在一行中的列会大大降低性能。我猜这是因为行和列的大小是基于它们的子元素的,所以嵌套它们会增加所需的大小计算。我只是不知道如何解决这个问题Dart 在ListView项目中使用嵌套列和行滚动jank,dart,flutter,Dart,Flutter,这个代码有问题。列表中的每个项目都是一行,包含两列文本。即使在发布模式下,这也会导致性能大幅下降。目前正在尝试为帖子构建Reddit风格的布局。使用嵌套在一行中的列会大大降低性能。我猜这是因为行和列的大小是基于它们的子元素的,所以嵌套它们会增加所需的大小计算。我只是不知道如何解决这个问题 new ListView.builder( controller: new ScrollController(initialScrollOffset: this.offset), key: ne
new ListView.builder(
controller: new ScrollController(initialScrollOffset: this.offset),
key: new UniqueKey(),
itemCount: this._posts != null ? this._posts.length : 0,
itemBuilder: (BuildContext context, int i) {
return new PostCard(
widget._posts[i],
);
},
),
返回的明信片如下所示(示例):
返回新容器(
孩子:新的一排(
crossAxisAlignment:crossAxisAlignment.start,
儿童:[
新专栏(
儿童:[
新文本(“你好世界”),
新文本(“你好世界”),
新文本(“你好世界”),
新文本(“你好世界”),
],
),
新专栏(
儿童:[
新文本(“你好世界”),
新文本(“你好世界”),
新文本(“你好世界”),
新文本(“你好世界”),
],
),
],
),
);
编辑:完整UI示例的屏幕截图。与上面的嵌套列示例相同的jank级别
更新。在其他手机上测试,这个问题并不存在。问题只出现在我的特定手机上(7.0上的S7 Edge)。你能发布一个你试图实现的示例屏幕吗?@VinothKumar yep添加到postTry中,使用mainAxisSize:mainAxisSize.max将行和列宽度拉伸到全屏,对于行和横轴对齐:crossAxisAlignment.stretch,对于列是的,我可以很好地构建UI,只是在这些卡片列表中滚动不到30fps。我猜这只是一个产品的颤振在它的婴儿期,因为即使汉密尔顿应用程序和顶部答案从这篇文章有相同的janky滚动。快速编辑:我在S7边缘运行所有这些。
return new Container(
child: new Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
new Column(
children: <Widget>[
new Text("Hello World"),
new Text("Hello World"),
new Text("Hello World"),
new Text("Hello World"),
],
),
new Column(
children: <Widget>[
new Text("Hello World"),
new Text("Hello World"),
new Text("Hello World"),
new Text("Hello World"),
],
),
],
),
);