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

时间:2018-03-02 10:50:18

标签: text widget dart flutter

我按下了Text widget,必须显示另一个Route。但我看不到Text widget的任何onPressed()方法。请帮助。

4 个答案:

答案 0 :(得分:13)

只需将您的标题包装在GestureDetector中即可处理点击次数。然后致电Navigator的{​​{1}}重定向到新路线。

pushNamed

答案 1 :(得分:8)

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

1。 InkWell()::使用此小部件,您可以在单击时添加波纹效果

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


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"),
 );

答案 2 :(得分:6)

使用InkWell

这也给你很好的连锁反应

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

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

答案 3 :(得分:3)

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

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<!-- item 1 -->
<div class="row">
  <div class="col-5">
    <input class="product_name" readonly type="text" name="product_name" value="productName">
  </div>
  <div class="col-1">
    <span class="price">1.00</span>€
  </div>
  <div class="col-3">
    <div class="input_group_button">
      <button class="btn plus btn-inc" type="button" data-inc="1">+</button>
    </div>
    <input class="input_group_field quantity" readonly type="number" name="quantity" value="0" max="9">
    <div class="input_group_button">
      <button class="btn minus btn-inc" type="button" data-inc="-1">-</button>
    </div>
  </div>
  <div class="col-2">
    <input class="total_price" readonly type="number" name="total_price" value="0.00"> €
  </div>
  <div class="col-1">
    <button class="btn" type="button" class="add_cart">Add to cart</button>
  </div>
</div>

<!-- item 2 -->
<div class="row">
  <div class="col-5">
    <input class="product_name" readonly type="text" name="product_name" value="productName">
  </div>
  <div class="col-1">
    <span class="price">9.99</span>€
  </div>
  <div class="col-3">
    <div class="input_group_button">
      <button class="btn plus btn-inc" type="button" data-inc="1">+</button>
    </div>
    <input class="input_group_field quantity" readonly type="number" name="quantity" value="0" max="9">
    <div class="input_group_button">
      <button class="btn minus btn-inc" type="button" data-inc="-1">-</button>
    </div>
  </div>
  <div class="col-2">
    <input class="total_price" readonly type="number" name="total_price" value="0.00"> €
  </div>
  <div class="col-1">
    <button class="btn" type="button" class="add_cart">Add to cart</button>
  </div>
</div>