我可以在Flatter中向ListView添加尾随项吗?
我想创建一个动态列表视图,最后一项是一个固定的“尾随”项,与动态列表无关 例如,此代码我可以在Flatter中向ListView添加尾随项吗?,listview,flutter,Listview,Flutter,我想创建一个动态列表视图,最后一项是一个固定的“尾随”项,与动态列表无关 例如,此代码 class ListTest extends StatefulWidget { @override ListTestState createState() => ListTestState(); } class ListTestState extends State<ListTest> { var myList = ['Item1','Item2','Item3','Ite
class ListTest extends StatefulWidget {
@override
ListTestState createState() => ListTestState();
}
class ListTestState extends State<ListTest> {
var myList = ['Item1','Item2','Item3','Item4','Item5','Item6','Item7','Item8','Item9',
'Item10','Item11','Item12','Item13','Item14','Item15','Item16','Item17','Item18','Item19'];
@override
Widget build(BuildContext context) {
return Column(
children: <Widget> [Expanded(
child: ListView.builder(
itemCount: myList?.length,
itemBuilder: (BuildContext content, int index) {
return ListTile(title: Text(myList[index], ) );
},
),
),
Text("Trailing item not related to the list"),
] );
}
}
class ListTest扩展了StatefulWidget{
@凌驾
ListTestState createState()=>ListTestState();
}
类ListTestState扩展了状态{
var myList=['Item1'、'Item2'、'Item3'、'Item4'、'Item5'、'Item6'、'Item7'、'Item8'、'Item9',
“第10项”、“第11项”、“第12项”、“第13项”、“第14项”、“第15项”、“第16项”、“第17项”、“第18项”、“第19项”];
@凌驾
小部件构建(构建上下文){
返回列(
儿童:[扩大(
子项:ListView.builder(
itemCount:myList?长度,
itemBuilder:(构建上下文内容,int索引){
返回ListTile(标题:Text(myList[索引],));
},
),
),
文本(“与列表无关的尾随项”),
] );
}
}
生成此文件:-
我想要的是“与列表无关的尾随项”项显示为“Item20”
我也尝试过ListView.separated
,但我也不能让它像我希望的那样工作
有人有什么想法吗?我的大脑冻结了 您可以这样做:
ListView.builder(
itemCount:myList?长度+1,
itemBuilder:(构建上下文内容,int索引){
if(index==myList.length){
返回文本(“与列表无关的尾随项”);
}
返回ListTile(标题:Text(myList[索引]);
},
),
它将检查您是否在列表的最后一项,并添加尾部的
小部件您可以执行以下操作:
ListView.builder(
itemCount:myList?长度+1,
itemBuilder:(构建上下文内容,int索引){
if(index==myList.length){
返回文本(“与列表无关的尾随项”);
}
返回ListTile(标题:Text(myList[索引]);
},
),
它将检查您是否在列表的最后一项,并添加尾随的小部件以下是您要查找的内容
class ListTest extends StatefulWidget {
@override
ListTestState createState() => ListTestState();
}
class ListTestState extends State<ListTest> {
var myList = ['Item1','Item2','Item3','Item4','Item5','Item6','Item7','Item8','Item9',
'Item10','Item11','Item12','Item13','Item14','Item15','Item16','Item17','Item18','Item19'];
@override
Widget build(BuildContext context) {
return Column(
children: <Widget> [Expanded(
child: ListView.builder(
itemCount: myList?.length,
itemBuilder: (BuildContext content, int index) {
return (index!=myList.length-1)?ListTile(title: Text(myList[index],):Container(/* The trailing widget you want to display*/) );
},
),
),
] );
}
}
class ListTest扩展了StatefulWidget{
@凌驾
ListTestState createState()=>ListTestState();
}
类ListTestState扩展了状态{
var myList=['Item1'、'Item2'、'Item3'、'Item4'、'Item5'、'Item6'、'Item7'、'Item8'、'Item9',
“第10项”、“第11项”、“第12项”、“第13项”、“第14项”、“第15项”、“第16项”、“第17项”、“第18项”、“第19项”];
@凌驾
小部件构建(构建上下文){
返回列(
儿童:[扩大(
子项:ListView.builder(
itemCount:myList?长度,
itemBuilder:(构建上下文内容,int索引){
return(index!=myList.length-1)?ListTile(标题:Text(myList[index],):Container(/*要显示的尾部小部件*/);
},
),
),
] );
}
}
以下是您要查找的内容
class ListTest extends StatefulWidget {
@override
ListTestState createState() => ListTestState();
}
class ListTestState extends State<ListTest> {
var myList = ['Item1','Item2','Item3','Item4','Item5','Item6','Item7','Item8','Item9',
'Item10','Item11','Item12','Item13','Item14','Item15','Item16','Item17','Item18','Item19'];
@override
Widget build(BuildContext context) {
return Column(
children: <Widget> [Expanded(
child: ListView.builder(
itemCount: myList?.length,
itemBuilder: (BuildContext content, int index) {
return (index!=myList.length-1)?ListTile(title: Text(myList[index],):Container(/* The trailing widget you want to display*/) );
},
),
),
] );
}
}
class ListTest扩展了StatefulWidget{
@凌驾
ListTestState createState()=>ListTestState();
}
类ListTestState扩展了状态{
var myList=['Item1'、'Item2'、'Item3'、'Item4'、'Item5'、'Item6'、'Item7'、'Item8'、'Item9',
“第10项”、“第11项”、“第12项”、“第13项”、“第14项”、“第15项”、“第16项”、“第17项”、“第18项”、“第19项”];
@凌驾
小部件构建(构建上下文){
返回列(
儿童:[扩大(
子项:ListView.builder(
itemCount:myList?长度,
itemBuilder:(构建上下文内容,int索引){
return(index!=myList.length-1)?ListTile(标题:Text(myList[index],):Container(/*要显示的尾部小部件*/);
},
),
),
] );
}
}
谢谢您的回答。我的大脑肯定解冻了。我想得太多了。与Mohit下面的答案非常相似,但你们两人几乎同时发布。谢谢你的帮助谢谢你的回答。我的大脑肯定解冻了。我想得太多了。与Mohit下面的答案非常相似,但你们两人几乎同时发布。谢谢你的帮助谢谢你的回答。我的大脑肯定解冻了。我想得太多了。与上面Karim的答案非常相似,但你们两人几乎同时发布。谢谢你的帮助谢谢你的回答。我的大脑肯定解冻了。我想得太多了。与上面Karim的答案非常相似,但你们两人几乎同时发布。谢谢你的帮助