如何在Flutter中制作交互式图标?

时间:2020-10-15 15:15:43

标签: flutter

我有一个小问题。

我想单击我的自定义图标,但我不知道该怎么做:c

单击此键后,我想转到另一个小部件,但有了这个,我可以尝试工作(希望如此)

如果您还可以告诉我如何使用整个小部件。

class secondWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container(
      height: 100,
      width: 100,
      margin: EdgeInsets.only(top: 100, bottom: 10),
      color: Colors.pink,
      child: new Icon(const IconData(0xe800, fontFamily: 'Dupa')),
      //this is not working :c
      onPressed: () {
         newWidgetGoBrr();
});
    );

2 个答案:

答案 0 :(得分:0)

容器没有onPressed。您需要对容器或图标使用GestureDetector小部件。

GestureDetector(
  onTap: () {
    // after click logic goes here.
    newWidgetGoBrr();
  },
  child: Container(
    height: 100,
    width: 100,
    margin: EdgeInsets.only(top: 100, bottom: 10),
    color: Colors.pink,
    child: new Icon(const IconData(0xe800, fontFamily: 'Dupa')),
  ),
),

答案 1 :(得分:0)

您需要的是可以检测手势的某种类型的检测器。它可以通过许多小部件获得,但最常用的是 GestureDetector InkWell

您可以用任何一个小部件包装您的图标。这些小部件使您可以访问 onTap 属性。

用Inkwell / GestureDector包装图标比包装整个容器要好(这取决于您的要求)。

您可以这样实现:

class secondWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container(
      height: 100,
      width: 100,
      margin: EdgeInsets.only(top: 100, bottom: 10),
      color: Colors.pink,
      child: InkWell(
        onTap: newWidgetGoBrr(), // your logic
        child: Icon(
          const IconData(0xe800, fontFamily: 'Dupa'),
        ),
      ),
    );
  }
}

注意:有了新的flutter版本,您不再需要使用 new 关键字。

相关问题