【问题标题】:how could i navigate the different screens based on their categories and return back to home screen我如何根据类别导航不同的屏幕并返回主屏幕
【发布时间】:2020-05-01 09:32:35
【问题描述】:

// 这是点击的水平列表视图页面,然后需要类别转到自己的页面。当单击一个类别时,它会在登陆主屏幕之前显示所有类别的所有页面。我怎样才能阻止这种情况发生。

import 'package:flutter/material.dart';


class HorizontalList extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container(
      height: 100.0,
      child: ListView(

        scrollDirection: Axis.horizontal,        
        children: <Widget>[

        // containers for categories
           Category(
            image_location: 'lib/images/supreme_airmax_white.jpg',
            image_caption: 'shoes',
           ),

           Category(
            image_location: 'lib/images/cats/offwhite_belt_blackandyellow_accessories.jpg',
            image_caption: 'accessories',

          ), 

        ],

      ),

    );



  }
}

class Category extends StatelessWidget {
  final String image_location;
  final String image_caption;

  Category({this.image_location, this.image_caption});

  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.all(2.0),
      child: InkWell(

       onTap: (){
        //pages for categories
       Category();Navigator.of(context).pushNamed('/screen5');
       Category();Navigator.of(context).pushNamed('/screen6');

       },

【问题讨论】:

  • 您到底想在onTap 中实现什么?您正在创建一个新的 Category 对象并多次推送/screenX
  • 点击我希望容器打开一个新页面。他们都是独立的
  • 没有必要在你的onTap 中创建一个新的Category 对象,删除它。只保留一个Navigator 推送。另外,我建议您将屏幕重命名为标题字符串,这样您就可以使用Navigator.of(context).pushNamed(image_caption)。或者,您可以使用 if 语句来决定要转到哪个页面等。
  • 谢谢,我尝试根据标题字符串命名屏幕,然后使用 Navigator.of(context).pushNamed(image_caption)。但它没有用,所以我怎么能使用 if 语句
  • 您必须执行pushNamed("/" + image_caption); 并修改main 文件中的路径,在该文件中声明路径名称与pushNamed 中使用的路径名称相同

标签: flutter navigation categories


【解决方案1】:

为了让它工作。该页面必须命名为 image_caption。在定义路由的主文件中。页面名称应声明为 "/shoes" : (Context) => ShoesPage(); .在 onTap 方法中 Navigator.of(context).pushNamed("/" + image_caption);然后就可以工作了。

【讨论】:

    猜你喜欢
    • 2023-03-31
    • 2020-09-22
    • 1970-01-01
    • 2019-12-02
    • 2021-01-06
    • 1970-01-01
    • 1970-01-01
    • 2016-01-15
    • 1970-01-01
    相关资源
    最近更新 更多