Каков эквивалентный код во флаттере для "mAdapter.notifyDataSetChanged ();"; - PullRequest
0 голосов
/ 31 мая 2018


Перед загрузкой отклика HTTP-ответа и после представления https откройте вкладку.Я успешно создал вид вкладки, но моя проблема в том, что после запроса HTTP невозможно обновить представление в андроид-студии с помощью Java, для этого мы используем

`mAdapter.notifyDataSetChanged();
 mActivity.runOnUiThread(new Runnable() {
                                         @Override
                                         public void run() {


                                         }
                                     });`


код.что такое эквивалентный код в флаттере?

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

Если вы хотите обновить любой виджет во флаттере, вы должны позвонить 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;
    });
  }
}
0 голосов
/ 31 мая 2018

В Flutter пользовательский интерфейс обновляется при изменении состояния с использованием метода setState .

В вашем случае вам потребуются некоторые переменные (например, isLoading, items (для вашего списка))).

Когда приложение загружает данные из серверной части, isLoading = true, items = [] (пусто).Когда запрос выполнен, isLoading = false и items = [item1, item2, ...]. Здесь вы должны использовать метод setState для обновления вашего пользовательского интерфейса.

В вашем методе сборки вы должны использовать эти 2 переменные для визуализации соответствующего пользовательского интерфейса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...