Flutter showDialog 如何刷新 setStatus
Posted 安果移不动
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flutter showDialog 如何刷新 setStatus相关的知识,希望对你有一定的参考价值。
答案是抽出来。。。
Future<void> _showRecommend() async {
final flag = await showDialog(
context: context,
builder: (BuildContext context) {
return FilterPage(color:widget.color);
});
}
FilterPage 这个页面可以使用 StatefulWidget 而且更新效果会跟过来
import 'package:flutter/material.dart';
class FilterPage extends StatefulWidget {
final Color color;
const FilterPage({Key? key, required this.color}) : super(key: key);
@override
_FilterPageState createState() => _FilterPageState();
}
class _FilterPageState extends State<FilterPage> {
bool? _checkPartA = null;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("筛选条件"),
backgroundColor: widget.color,
),
body: Container(
color: Colors.white,
child: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Row(
children: [
Text("身份:"),
ChoiceChip(
label: Text("甲方"),
selected: _checkPartA != null && _checkPartA!,
onSelected: (selected) {
setState(() {
_checkPartA = true;
});
},
selectedColor: widget.color),
ChoiceChip(
label: Text("乙方"),
selected: _checkPartA != null && !_checkPartA!,
selectedColor: widget.color,
onSelected: (selected) {
setState(() {
_checkPartA = false;
});
},
),
],
),
ListTile(
title: Text('确认退出'),
onTap: () {
Navigator.pop(context, true);
},
),
],
),
),
);
}
}
以上是关于Flutter showDialog 如何刷新 setStatus的主要内容,如果未能解决你的问题,请参考以下文章
使用 showdialog 和 textfield 在 Flutter 中更新单个 Listview 项目
在showDialog中Flutter Navigator.of(context).pop(),在ios中关闭整个应用程序