如何为Text小部件Flutter实现OnPressed回调

Fat*_* km 15 text widget dart flutter

我有一个Text widget按下,另一个Route必须显示.但我看不到任何onPressed()方法Text widget.请帮忙.

Rém*_*let 35

只需将标题包装在一个GestureDetector处理点击即可.然后调用Navigator's pushNamed重定向到新路由.

new GestureDetector(
  onTap: () {
    Navigator.pushNamed(context, "myRoute");
  },
  child: new Text("my Title"),
);
Run Code Online (Sandbox Code Playgroud)

  • 我上周开始使用 Flutter。这确实是我遇到过的最令人惊奇的开发者体验。精彩的。 (3认同)

Chi*_*mar 15

您可以使用TextButton。由于它具有透明背景,因此它看起来像一个文本小部件。

            TextButton(
              onPressed: () {
                //action
              },
              child: Text(
                'Title Text', //title
                textAlign: TextAlign.end, //aligment
              ),
            ),
Run Code Online (Sandbox Code Playgroud)


May*_*sad 13

使用InkWell

这也给你很好的涟漪效果

 new InkWell(
          onTap: () {
            Navigator.pushNamed(context, "YourRoute");
          },
          child: new Padding(
            padding: new EdgeInsets.all(10.0),
            child: new Text("Tap Here"),
          ),
        );
Run Code Online (Sandbox Code Playgroud)

要么

new FlatButton(
          onPressed: () {
            Navigator.pushNamed(context, "YourRoute");
          },
          child: new Text("Tap Here"),
        )
Run Code Online (Sandbox Code Playgroud)


San*_*inh 10

对于Flutter 的所有小部件,您可以 使用这些小部件实现onPressed

1. InkWell() :使用此小部件,您可以在点击时添加涟漪效果

InkWell(
     onTap: () {
         Navigator.pushNamed(context, "write your route");
     },
     child: new Text("Click Here"),
 );
Run Code Online (Sandbox Code Playgroud)


2. GestureDetector() :使用这个小部件,你可以实现 onTap、onDoubleTap、onLongPress 等等

GestureDetector(
     onTap: () {
         Navigator.pushNamed(context, "write your route");
     },
     onLongPress: (){
        // open dialog OR navigate OR do what you want
     }
     child: new Text("Save"),
 );
Run Code Online (Sandbox Code Playgroud)