我想在单行中放置两个列表图块。如何在Flutter中将每次迭代的索引增量增加2?
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS94TEV0aS5qcGcifQ==” alt =“在此处输入图像描述”>
在下面的代码中,如您所见,我试图连续使用两个列表,然后我希望索引为index+2
。但是,默认情况下,索引会增加index+1
。
我如何将其增加两个?
body: ListView.builder(
itemCount: song.length - 1,
itemBuilder: (BuildContext ctxt, int index) {
return Row(
children: <Widget>[
Expanded(
flex: 1,
child: ListTile(
title: Text(song[index]),
subtitle: Text(singer[index]),
trailing: Text(time[index]),
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => Player(
song[index],
singer[index],
time[index],
),
),
);
},
),
),
Expanded(
flex: 1,
child: ListTile(
title: Text(song[index+1]),
subtitle: Text(singer[index+1]),
trailing: Text(time[index+1]),
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => Player(
song[index+1],
singer[index+1],
time[index+1],
),
),
);
},
),
),
],
);
},
),
连续使用两个项目时最好使用GridView,但是如果要使用列表视图,以下代码将为您提供帮助。
您可以通过其他手动索引维护索引。
List<int> list = [1, 2, 3, 4, 5, 6, 7];
int extraindex = -2;
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
child: ListView.builder(
itemCount:
list.length % 2 == 0 ? list.length / 2 : list.length ~/ 2 + 1,
itemBuilder: (_, index) {
extraindex += 2;
return Row(
children: [
Text(list[extraindex].toString()),
if (extraindex + 1 < list.length)
Text(list[extraindex + 1].toString()),
],
);
},
),
),
);
}