【问题标题】:What is the equivalent code in flutter for " mAdapter.notifyDataSetChanged();";“ mAdapter.notifyDataSetChanged();”的flutter中的等效代码是什么?
【发布时间】:2018-11-10 04:22:36
【问题描述】:
在 HTTP 响应显示加载之前和 https 响应之后创建选项卡视图。我成功创建了选项卡视图,但我的问题是 HTTP 请求无法使用我们使用的 java 更新 android studio 中的视图
`mAdapter.notifyDataSetChanged();
mActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
}
});`
执行此操作的代码。
Flutter 中的等价代码是什么?
【问题讨论】:
标签:
flutter
flutter-layout
【解决方案1】:
如果您想在 Flutter 中更新任何小部件,您应该致电 setState((){})
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => new _MyAppState();
}
class _MyAppState extends State<MyApp> {
bool isLoading = false;
@override
void initState() {
super.initState();
isLoading = true;
getData();
}
@override
Widget build(BuildContext context) {
return isLoading ? new CircularProgressIndicator() : // show list;
}
Future<ModelClass> getData() async {
// get data from http
...
// after processing response
setState(() {
isLoading = false;
});
}
}
【解决方案2】:
在 Flutter 中,使用 setState 方法更改状态时更新 UI。
在您的情况下,您将需要一些变量(例如:isLoading,项目(用于您的列表))。
当应用从后端加载数据时,isLoading = true, items = [](空)。当请求完成时,isLoading = false 和 items = [item1, item2,...]。 这里你必须使用 setState 方法来更新你的 UI。
在您的构建方法下,您必须使用这两个变量来呈现相应的 UI。