微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

颤动中ListView.builder中的不同页面导航?

如何解决颤动中ListView.builder中的不同页面导航?

onTap: () {
  Navigator.push(
      context,MaterialPageRoute(builder: (context) => Animals()));
},

我正在尝试在 Inkwell Insider 中添加不同的页面路由导航 我尝试了一些不同的方法但它不起作用

我的列表视图名称

List title = [
   'Animals','Birds','Body Parts','Country','Fish','Plants','Vehicle','Works',];

我希望这个导航到 List route = [Animals(),Birds(),BodyParts(),Country(),Fish(),Plant(),Vehicle(),Works(),];

解决方法

你可以这样做:

List pages = [['Animals',Animals()],['Birds',Birds()],['Body Parts',BodyParts()],['Country',Country()],['Fish',Fish()],['Vehicle',Vehicle()],['Plants',Plants()],['Works',Works()]];

现在:

ListView.builder(
      itemCount: pages.length,itemBuilder: (context,index) {
        return GestureDetector(
          child: ListTile(title:Text(pages[index][0])),onTap: () {
           Navigator.push(context,MaterialpageRoute(builder:(context)=>pages[index][1])));
          },);
      },)
,

你可以这样实现

ListView.builder(
          itemCount: title.length,index) {
            return TextButton(
              onPressed: () {
                //YOUR NAVIGATION CODE
              },child: Text('${title[index]}'),);
          },)
,

您有这些列表:

List<String> title = ['Animals','Birds','Body Parts','Country','Fish','Plants','Vehicle','Works'];

List<Widget> route = [Animals(),Birds(),BodyParts(),Country(),Fish(),Plant(),Vehicle(),Works()];

现在,您可以使用 ListView.builder 中的索引简单地映射小部件

ListView.builder(
    itemCount: title.length,index) {
        return ListTile(
            title: title[index],onTap: () => Navigator.push(context,MaterialPageRoute(builder: (context) => route[index]))
        );
    }
)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。