首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >One On tap功能

One On tap功能
EN

Stack Overflow用户
提问于 2020-01-29 00:24:23
回答 2查看 48关注 0票数 0

我是个新手。我尝试创建一个ecomm应用程序。我有一个10个类别和1个自定义小工具。如何使用on tap功能来指导这10个类别?我的意思是,对于每个_categoryTap,直接使用这个类别。类似于:_categoryTap(Navigate to)或?为我糟糕的英语道歉))我的代码:

代码语言:javascript
复制
class ListOfCategory extends StatefulWidget {
  @override
  _ListOfCategoryState createState() => _ListOfCategoryState();
}

class _ListOfCategoryState extends State<ListOfCategory> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: ListView(
        // padding: EdgeInsets.only(left: 40, right: 40),
        children: <Widget>[
          Padding(
            padding: EdgeInsets.only(top: 30, left: 40, right: 40),
            child: Image.asset('assets/dafna_logo.png'),
          ),
          SizedBox(height: 15),
          Padding(
            padding: const EdgeInsets.all(8.0),
            child: Wrap(
              children: <Widget>[
                _categoryTap('name'),
                _categoryTap('name'),
                _categoryTap('name'),
                _categoryTap('name'),
                _categoryTap('name'),
                _categoryTap('name'),
                _categoryTap('name'),
                _categoryTap('name'),
                _categoryTap('name'),
              ],
            ),
          ),
        ],
      ),
    );
  }
}


  Widget _categoryTap(String _nameCategory) {

    return InkWell(
      onTap: () {},
      child: Padding(
        padding: EdgeInsets.all(5),
        child: Column(
          children: <Widget>[
            Container(
              height: 120,
              width: 120,
              color: Colors.blue,
            ),
            Container(
              width: 120,
              height: 35,
              // color: Colors.red,
              child: Text(_nameCategory,),
            ),
          ],
        ),
      ),
    );
  }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-29 00:58:08

如果你是以静态的方式来做这件事,那么这是你可以检查的下面的例子

代码语言:javascript
复制
@override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: ListView(
          // padding: EdgeInsets.only(left: 40, right: 40),
          children: <Widget>[
            Padding(
              padding: EdgeInsets.only(top: 30, left: 40, right: 40),
              child: Icon(Icons.add),
            ),
            SizedBox(height: 15),
            Padding(
              padding: const EdgeInsets.all(8.0),
              child: Wrap(
                children: <Widget>[
                  _categoryTap('test1'),
                  _categoryTap('test2'),
                  _categoryTap('test3'),
                  _categoryTap('test4'),
                  _categoryTap('test5'),
                  _categoryTap('test6'),
                  _categoryTap('test6'),
                  _categoryTap('test8'),
                  _categoryTap('test9'),
                ],
              ),
            ),
          ],
        ),
      ),
    );
  }

  Widget _categoryTap(String _nameCategory) {
    return InkWell(
      onTap: () {
        print('tap');
        switch (_nameCategory) {
          case 'test1':
            {
              // statements;
              print('Test 1');
            }
            break;

          case 'test2':
            {
              //statements;
            }
            break;
          // .... and so on
          default:
            {
              //statements;
              print('you command whatever you want');
            }
            break;
        }
      },
      child: Padding(
        padding: EdgeInsets.all(5),
        child: Column(
          children: <Widget>[
            Container(
              height: 120,
              width: 120,
              color: Colors.blue,
            ),
            Container(
              width: 120,
              height: 35,
              // color: Colors.red,
              child: Text(
                _nameCategory,
              ),
            ),
          ],
        ),
      ),
    );
  }

如果能用的话请告诉我谢谢。

票数 0
EN

Stack Overflow用户

发布于 2020-01-29 13:43:51

试试这个:

代码语言:javascript
复制
class ListOfCategory extends StatefulWidget {
  @override
  _ListOfCategoryState createState() => _ListOfCategoryState();
}

class _ListOfCategoryState extends State<ListOfCategory> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: ListView(
        // padding: EdgeInsets.only(left: 40, right: 40),
        children: <Widget>[
          Padding(
            padding: EdgeInsets.only(top: 30, left: 40, right: 40),
            child: Image.asset('assets/dafna_logo.png'),
          ),
          SizedBox(height: 15),
          Padding(
            padding: const EdgeInsets.all(8.0),
            child: Wrap(
              children: <Widget>[
                _categoryTap('name'),
                _categoryTap('name'),
                _categoryTap('name'),
                _categoryTap('name'),
                _categoryTap('name'),
                _categoryTap('name'),
                _categoryTap('name'),
                _categoryTap('name'),
                _categoryTap('name'),
              ],
            ),
          ),
        ],
      ),
    );
  }


  Widget _categoryTap(String _nameCategory) {
    return InkWell(
      onTap: () {
        redirectToEditProfile(context);
      },
      child: Padding(
        padding: EdgeInsets.all(5),
        child: Column(
          children: <Widget>[
            Container(
              height: 120,
              width: 120,
              color: Colors.blue,
            ),
            Container(
              width: 120,
              height: 35,
              // color: Colors.red,
              child: Text(_nameCategory,),
            ),
          ],
        ),
      ),
    );
  }
}




void redirectToEditProfile(BuildContext context) async {
  await Navigator.of(context).push(PageRouteBuilder(
      opaque: false,
      pageBuilder: (BuildContext context, _, __) {
        return (Your Redirecting Activity);
      }));

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59953036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档