【问题标题】:ways to add two ontap method flutter添加两个ontap方法flutter的方法
【发布时间】:2021-06-07 05:11:49
【问题描述】:
  import 'package:flutter/material.dart';
    import 'package:workplan_beta_test/pages/updateworkplan.dart';
    import 'package:workplan_beta_test/pages/workplan.dart';
    
    Map<int, Color> color = {
      50: Color.fromRGBO(255, 92, 87, .1),
      100: Color.fromRGBO(255, 92, 87, .2),
      200: Color.fromRGBO(255, 92, 87, .3),
      300: Color.fromRGBO(255, 92, 87, .4),
      400: Color.fromRGBO(255, 92, 87, .5),
      500: Color.fromRGBO(255, 92, 87, .6),
      600: Color.fromRGBO(255, 92, 87, .7),
      700: Color.fromRGBO(255, 92, 87, .8),
      800: Color.fromRGBO(255, 92, 87, .9),
      900: Color.fromRGBO(255, 92, 87, 1),
    };
    MaterialColor colorCustom = MaterialColor(0xFF4fa06d, color);
    
    class MenuWorkplan extends StatelessWidget {
      late final Color? color;
      @override
      Widget build(BuildContext context) => Scaffold(
          appBar: AppBar(
            title: Text('Workplan'),
            centerTitle: true,
            backgroundColor: colorCustom,
          ),
          body: new ListView(
              shrinkWrap: true,
              padding: const EdgeInsets.all(20.0),
              children: List.generate(choices.length, (index) {
                return Center(
                  child: ChoiceCard(
                    choice: choices[index],
                    item: choices[index],
                    onTap: () {
                      Navigator.push(
                          context,
                          MaterialPageRoute(
                            builder: (context) => Workplan(),
                          ));
                    },

     onTap: () {
error in this line
                      Navigator.push(
                          context,
                          MaterialPageRoute(
                            builder: (context) => Workplan(),
                          ));
                    },
                  ),
                );
              })));
    }
    

我想在 ChoiceCard Widget 内的 listView 中添加两个 onTap() 方法,以便跟踪两次点击。那可能吗?任何替代帮助都是可观的。我是一个新手。下面是我的示例代码。提前致谢。

【问题讨论】:

  • 您不能在一个小部件中两次使用相同的属性。请更好地解释您的用例。
  • 你只需用 Inkwell 包裹你的 ChoiceCard 并使用 onTap,我希望它对你有用。

标签: android flutter flutter-layout


【解决方案1】:

您不能多次调用相同的方法(在您的情况下为 onTap() 方法)。但是您可以根据您的用例采用一些替代方法。例如,您可以将您的 ChoiceCard 小部件与其他一些具有可用 onTap 方法的小部件包装在一起。

【讨论】:

    猜你喜欢
    • 2017-11-03
    • 2020-01-24
    • 1970-01-01
    • 2021-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多