Flutter中Navigator.push传参报错,咨询歌单传歌曲路径到播放器方法
1. 修改musicplayer.dart,添加参数接收构造函数
在music_player类中新增用于接收歌曲路径的成员变量,并更新构造函数,让它能接收外部传入的参数:
class music_player extends StatefulWidget { // 声明存储歌曲路径的变量 final String songPath; // 更新构造函数,要求必须传入songPath参数 const music_player({Key? key, required this.songPath}) : super(key: key); @override State<music_player> createState() => _music_playerState(); } class _music_playerState extends State<music_player> { @override Widget build(BuildContext context) { // 在State中通过widget.songPath获取传递过来的歌曲路径 return Scaffold( // 这里编写你的播放器界面逻辑,比如使用songPath初始化播放 body: Center( child: Text('当前播放路径:${widget.songPath}'), ), ); } }
2. 修改songlist.dart,传递选中的歌曲路径
在IconButton的点击回调中,获取当前选中项的歌曲路径,再通过命名参数传递给music_player:
leading: IconButton( onPressed: (){ // 获取当前索引对应的歌曲完整路径 String selectedSong = getSongList()[1][index]; Navigator.push( context, MaterialPageRoute( builder: (context) => music_player(songPath: selectedSong) ) ); }, icon: Icon(Icons.my_library_music) ),
内容的提问来源于stack exchange,提问作者Dimuth De Zoysa
相关产品推荐
相关产品推荐

