我正在尝试向我的应用添加一些过滤器。 首先,一旦我登录,仪表板页面就会出现。显示数据,即点击某些API后的结果。 所以我要添加功能以过滤结果。也就是说,第一次我会点击API并显示默认的配置结果。因为我要添加过滤器,所以我要从用户端请求过滤器参数,然后将过滤器添加到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要求。
包含“ ...”的仪表板代码一旦单击,就会调用_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'),
)
],
),
);
});
}
帮助我,谢谢。