【问题标题】: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。

      【讨论】:

        猜你喜欢
        • 2019-05-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-31
        • 2017-06-17
        • 2015-06-06
        相关资源
        最近更新 更多