Как автоматически обновить пользовательский интерфейс при обновлении списка - PullRequest
0 голосов
/ 11 октября 2019

Мне нужно обновить интерфейс пользователя, когда список обновляется, данные изменяются, но интерфейс пользователя не обновляется. Пытаясь создать приложение с информацией о продукте, когда я пытаюсь нажать на верхний значок, он обновляет список, но интерфейс пользователя остается прежним.

enter image description here

Mytop icon code

import 'package:flutter/material.dart';
import 'package:igloled_app/products_list.dart';

class CategoryCard extends StatelessWidget {

  final int catid;
  final String name;

  CategoryCard({this.catid,this.name});




  @override
  Widget build(BuildContext context) {
    return InkWell(
      onTap: (){
        print(name);
        print(catid);
        getAllProductsInCategory(catid);
      },
      child: Center(
        child: Padding(
          padding: const EdgeInsets.all(3.0),
          child: Container(
            color: Color(0xffECECEC),
            width: 150.0,
            child: Column(
              children: <Widget>[
                Image.asset('images/bulb.png',width: 100.0,height: 50.0,),
            Padding(
              padding: const EdgeInsets.all(3.0),
              child: Text(name,textAlign: TextAlign.center,
                  style: TextStyle(
                    color: Colors.black,
                    fontSize: 10.0,
                    fontWeight: FontWeight.w500),
                ),
            )
              ],
            ),

          ),
        ),
      ),

    );
  }
}


А это мой список обновлений кода

import 'dart:convert';
import 'package:flutter/cupertino.dart';
import 'package:http/http.dart';
import 'package:igloled_app/home.dart';
import 'package:igloled_app/products.dart';
import 'dart:async';

import 'package:igloled_app/utilities/category_list.dart';

List<ProductsList> productList = [];


class ProductsList{

  int proId;
  String proName;
  String proThummbnail;

  ProductsList({@required this.proId,@required this.proName,@required this.proThummbnail});
}




Future<List<ProductsList>> getAllProductsInCategory(int catid) async{

//  print(categoryList[0].catId);
  String prodInCategoryUrl = 'https://app.ecwid'
      '.com/api/v3/12424132/products?token'
      '=public_yrwehfjhdjhfjsdyfucbjhfdsfgdshbbvcdx&enabled=true&category=$catid';


  Response allProductsInCategory = await get(prodInCategoryUrl);
  print(allProductsInCategory.statusCode);

  productList.removeRange(0, productList.length);

  if(allProductsInCategory.statusCode == 200)
  {
    var allProductsInCategoryData = allProductsInCategory.body;

    int totalcount = jsonDecode(allProductsInCategoryData)['count'];

    for(int i=0;i<totalcount;i++)
    {
//            print(jsonDecode(categoryData)['items'][i]['id']);
//            print(jsonDecode(categoryData)['items'][i]['name']);

      productList.add(
          ProductsList(proId: jsonDecode(allProductsInCategoryData)['items'][i]['id'],
              proName: jsonDecode(allProductsInCategoryData)
              ['items'][i]['name'], proThummbnail: jsonDecode
                (allProductsInCategoryData)
              ['items'][i]['thumbnailUrl']
          )
      );

    }




    print('products list length ${productList.length}');

    return productList;

  }

  return productList;;
}


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