Flutter中点击树木设计页图片切换主页默认树木图时遇到必填参数缺失错误的问题求助
Flutter中点击树木设计页图片切换主页默认树木图时遇到必填参数缺失错误的问题求助
我现在想实现一个功能:当我点击tree_design_page里的特定树木图片时,自动把main_page里的默认树木图片换成我点击的那张。
我尝试把选中树木的索引传到main_page,但在sidebar.dart里出现了错误:
The named parameter 'index' is required, but there's no corresponding argument. Try adding the required argument.
下面是我目前正在调试的核心代码:
tree_design_page.dart
PageView.builder( itemCount: treeModelList.length, itemBuilder: (context, index) { return Stack( children: [ InkWell( onTap: () { Navigator.push( context, MaterialPageRoute( builder: (context) => MainPage(index: index), ), ); }, child: Container( decoration: BoxDecoration( image: DecorationImage( image: NetworkImage(treeModelList[index].thumbnailUrl), ), ), ), ),
main_page.dart
class MainPage extends StatelessWidget { const MainPage({ super.key, //required this.treeModel, required this.index, }); //final TreeModel treeModel; final int index; @override Widget build(BuildContext context) { return Scaffold( body: Container( decoration: const BoxDecoration( image: DecorationImage( image: AssetImage('lib/images/green_meadow.jpg'), fit: BoxFit.cover, ), ), child: Stack( children: [ // Background Image Positioned.fill( child: Image.asset( 'lib/images/green_meadow.jpg', fit: BoxFit.cover, ), ), // Overlay Image Positioned( bottom: 10, left: 105.7, child: /*Image.asset( 'lib/images/tree_illust.png', width: 200, height: 200, ),*/ Image.network(treeModelList[index].thumbnailUrl), ), ], ), ), ); } }
sidebar.dart
class SideBar extends StatefulWidget { const SideBar({ super.key, }); @override State<SideBar> createState() => _SideBarState(); } class _SideBarState extends State<SideBar> { List<ScreenHiddenDrawer> _pages = []; final _baseStyle = const TextStyle( fontSize: 14, color: Colors.black, ); final _selectedStyle = const TextStyle( fontWeight: FontWeight.bold, fontSize: 24, color: Colors.white, ); @override void initState() { super.initState(); _pages = [ //main page ScreenHiddenDrawer( ItemHiddenMenu( name: 'Hello there!', baseStyle: _baseStyle, selectedStyle: _selectedStyle, ), MainPage(), //Error message: The named parameter 'index' is required, but there's no corresponding argument. Try adding the required argument. ), ...Other pages ]; } @override Widget build(BuildContext context) { return HiddenDrawerMenu( backgroundColorMenu: const Color.fromRGBO(151, 193, 169, 1), screens: _pages, initPositionSelected: 0, slidePercent: 60, ); } }
备注:内容来源于stack exchange,提问作者loupdaniel
相关产品推荐
相关产品推荐

