将手势检测器包裹在卡周围

时间:2018-07-13 04:16:56

标签: flutter

现在我在页面的主体上有一个按钮,但无法实现此按钮(路由到另一个页面)来仅封装是

的卡片
child: new Text(data["data"][index]["title"]),

它在itemBuilder中,所以我认为我必须做一个GestureDetector。我尝试过将那个孩子放到GestureDetector方法中,但是除非它整个身体都不能使它正常工作。

@override
    Widget build(BuildContext context) {
      return new Scaffold(
        appBar: new AppBar(
          title: new Text("Listviews"),
        ),
        body: new GestureDetector(
          onTap: () {
            Navigator.push(context,
              MaterialPageRoute(builder:  (context) => StandardsControlPage()),
            );
          },
          child: Container(
            padding: EdgeInsets.all(16.0),
            child: new ListView.builder(
              itemCount: data == null ? 0 : data["data"].length,
              itemBuilder: (BuildContext context, int index) {
                return new Card(
                  child: new Text(data["data"][index]["title"]),
                );},
            ),
          ),
        ),
      );
    }}

如果我有多个按钮可以按不同的路线按此示例,则该示例将无法正常工作,并且想知道是否有实现针对那个孩子的通过该路线的按钮,我该怎么做?

1 个答案:

答案 0 :(得分:2)

return new Scaffold(
    appBar: new AppBar(
      title: new Text("Listviews"),
    ),
    body: Container(
      padding: EdgeInsets.all(16.0),
      child: new ListView.builder(
        itemCount: data == null ? 0 : data["data"].length,
        itemBuilder: (BuildContext context, int index) {
          return new GestureDetector(
            child: new Card(
              child: new Text(data["data"][index]["title"]),
            ),
            onTap: () {
              Navigator.push(
                context,
                MaterialPageRoute(
                    builder: (context) => StandardsControlPage()),
              );
            },
          );
        },
      ),
    ));

我认为这会起作用。