如何在ListView中展示列表内的多个ListTile?代码无效果求解
解决方法
你的代码问题出在ListView.builder的itemBuilder回调里——只获取了对应的ListTile但没有返回它,导致列表无法渲染任何内容。只需在回调中添加返回语句即可:
修改后的完整代码:
class _MenuListState extends State<MenuList> { List<ListTile> menu = [ ListTile( leading: Icon(Icons.featured_play_list), title: Text('Playlists'), ), ListTile( leading: Icon(Icons.send), title: Text('Menu...'), ), ListTile( leading: Icon(Icons.logout), title: Text('Logout'), ), ]; @override Widget build(BuildContext context) { return Scaffold( body: ListView.builder( itemCount: menu.length, itemBuilder: (BuildContext context, int index) { final menuList = menu[index]; return menuList; // 添加返回语句 }, ), ); } }
你也可以简化写法,省去中间变量直接返回目标元素:
itemBuilder: (BuildContext context, int index) { return menu[index]; },
修改完成后,ListView会逐个渲染你定义的所有ListTile,屏幕上就能显示完整的菜单列表了。
内容的提问来源于stack exchange,提问作者JYX
相关产品推荐
相关产品推荐

