You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中Navigator.push传参报错,咨询歌单传歌曲路径到播放器方法

解决Flutter Navigator传参报错的方案

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 22:45:30