有没有办法在Flutter中获得事件目标?

时间:2018-03-08 22:22:02

标签: flutter

例如,如果我将相同的方法分配给两个不同按钮的onPressed属性,方法中是否有方法来判断按下了哪个按钮?

我在文档中看到onPressed是一个VoidCallback,所以传递参数似乎是不可能的。

1 个答案:

答案 0 :(得分:0)

正如 Darky 所说,你必须通过按钮上的onPressed事件创建一个方法来调用标记作为参数。

有时你需要上下文,所以我把它作为一个可选参数

// on regular buttons
onPressed: ()=> onPress( "button.menu")
// when you need the context
onPressed: ()=> onPress( "button.nav", context)

方法应该是这个

void onPress(String tag,[BuildContext context]){
   switch(tag){
   case "button.nav":
        // here the specific event for the tag = button.nav
        Navigator.of(context).pushNamed('/home');
    break;
    default:
        // here the default event
    break;
    }
}