我有一个小问题。
我想点击我的自定义图标,但我不知道如何做到: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();
});
);
Container没有onPressed
。您需要将GestureDetector小部件与Container或Icon一起使用。
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')),
),
),
您需要的是某种类型的检测器,可以检测您的手势。它可以通过许多小部件获得,但最常用的是GestureDetector和InkWell。
您可以用任意一个小部件包装您的图标。这些小部件允许您访问onTap属性。
用Inkwell/GestureDector包装Icon比包装整个容器要好(这取决于您的要求(。
你可以这样实现:
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关键字了。