Android 颤振教程
我正在学习flatter.io中提供的教程 在本教程的第四部分中,我很难理解以下段落:Android 颤振教程,android,dart,flutter,Android,Dart,Flutter,我正在学习flatter.io中提供的教程 在本教程的第四部分中,我很难理解以下段落: Widget _buildSuggestions() { return ListView.builder( padding: const EdgeInsets.all(16.0), itemBuilder: /*1*/ (context, i) { if (i.isOdd) return Divider(); /*2*/ final index = i ~/ 2; /*3*/
Widget _buildSuggestions() {
return ListView.builder(
padding: const EdgeInsets.all(16.0),
itemBuilder: /*1*/ (context, i) {
if (i.isOdd) return Divider(); /*2*/
final index = i ~/ 2; /*3*/
if (index >= _suggestions.length) {
_suggestions.addAll(generateWordPairs().take(10)); /*4*/
}
return _buildRow(_suggestions[index]);
});
}
具体如下:
final index = i ~/ 2; /*3*/
有人能解释一下插入这条线的目的吗
到教程页面。将使用不同的
i
值多次调用itemBuilder
lambda。当i
为奇数(1、3、5、7,…)时,它将返回一个除法器。这就给我们留下了偶数(0,2,4,6,…)的情况。行index=i~/2
意味着将i
除以2(使用整数数学)并分配给索引
,现在当然是0、1、2、3等
它被用作建议
列表
(又称数组)的索引
它将交替显示一行行建议和分隔符。嘿,我对颤振还不熟悉。我在ListView.builder中查看了一些教程,它们也必须通过长度。但在这方面,它们不是传递长度,所以它们是如何计算行的。?如果有人知道,请解释。在这个问题上,列表是无限的;如果列表视图
要求一个尚不存在的行,则生成器会在此处添加更多行:\u suggestions.addAll
。如果添加itemCount
,则传递给构建器的最大索引
受此限制。见: