通过从flutter中的JSON获取创建过滤器视图

时间:2019-09-24 07:56:05

标签: flutter

我正在尝试向我的应用添加一些过滤器。 首先,一旦我登录,仪表板页面就会出现。显示数据,即点击某些API后的结果。 所以我要添加功能以过滤结果。也就是说,第一次我会点击A​​PI并显示默认的配置结果。因为我要添加过滤器,所以我要从用户端请求过滤器参数,然后将过滤器添加到Json请求中,然后命中相同的API,首先,Json请求中的“过滤器”为空。

因此,一旦点击此按钮,仪表板“ ...”中就会有一个选项,我想显示过滤器菜单。

我发现如何在该菜单中显示那些过滤器选项很困难。

为了获取过滤器数据,我点击了API,它给出了这样的结果,

{
"reportFields": 
    [
    {

    "id": "choice",

        "displayId": "Select Any of the choices",

        "dataType": "list"    
    },
    ]
"choice": 
[

  {

  "id": "1",

  "displayId": "Option 1"

   },


   {

   "id": "2",

   "displayId": "Option 2"

   },

   {

   "id": "3",

   "displayId": "Option 3"

   }

  ]
}

一旦在dashbord中单击“ ...”按钮,我希望过滤卡弹出上面的json之类的详细信息,并且在选择了选项之后,我想点击在其JSON中包含该过滤数据的仪表板API要求。

dashboard_click_here

包含“ ...”的仪表板代码一旦单击,就会调用_showModalSheet,该弹出窗口会弹出bottomupsheet

getDashBody(var data) {
    return Column(
      children: <Widget>[
        Container(
          height: MediaQuery.of(context).size.height * 0.05,
          child: Row(
            mainAxisAlignment: MainAxisAlignment.spaceBetween,
            children: <Widget>[
              Padding(
                  padding: const EdgeInsets.symmetric(
                      horizontal: 8.0, vertical: 2.0),
                  child: Text(
                    "Overview",
                    style: TextStyle(
                        fontSize: 18.0,
                        fontWeight: FontWeight.bold,
                        color: Colors.grey),
                  )),
              Container(
                child: IconButton(
                    icon: new Icon(Icons.more_horiz),
                    onPressed: _showModalSheet),
              ),
            ],
          ),
        ),
],
    );
  }

void _showModalSheet() {
    showModalBottomSheet<void>(
        context: context,
        builder: (BuildContext context) {
          return new Container(
            padding: new EdgeInsets.all(15.0),
            child: new Row(
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                new Text(
                  'Some info here',
                  style: new TextStyle(
                      color: Colors.red, fontWeight: FontWeight.bold),
                ),
                new RaisedButton(
                  onPressed: () => Navigator.pop(context),
                  child: new Text('Close'),
                )
              ],
            ),
          );
        });
  }

帮助我,谢谢。

0 个答案:

没有答案