Home > Mobile >  how to flutter getx make a 13 different controller with search function
how to flutter getx make a 13 different controller with search function

Time:05-22

class IlacProductController extends GetxController {
  final IlacProductRepo ilacProductRepo;
  IlacProductController({required this.ilacProductRepo});
  List<dynamic> _ilacproductList = [];
  List<dynamic> get ilacproductList => _ilacproductList;

  bool _isLoaded = false;
  bool get isLoaded => _isLoaded ;

  Future<void> getIlacProductList() async {
    Response response = await ilacProductRepo.getIlacProductList();
    if (response.statusCode == 200) {
      print("got ilaç");
      _ilacproductList = [];
      _ilacproductList.addAll(Product.fromJson(response.body).products);
      _isLoaded=true;
      update();
    } else {return print("something wrong");}
  }
}

I have 13 different controller codes similar to the above code, each representing a different category

  @override
  Widget buildResults(BuildContext context) {
    return GetBuilder<HalkSagligiProductController>(builder: (allProduct) {
      return allProduct.isLoaded
          ? ListView.builder(
          shrinkWrap: true,
          physics: const NeverScrollableScrollPhysics(),
          itemCount: allProduct.halksagligiproductList.length,
          itemBuilder: (context, index) {
            return GestureDetector(
              onTap: () {
                Get.toNamed(RouteHelper.getHalkProduct(index));
              },
              child: Container(
                  margin: EdgeInsets.only(
                      left: Dimensions.width20,
                      right: Dimensions.width10,
                      bottom: Dimensions.height15),
                  child: Row(
                    children: [
                      //image section
                      Container(
                        width: Dimensions.listViewImgSize,
                        height: Dimensions.listViewImgSize,
                        decoration: BoxDecoration(
                            borderRadius: BorderRadius.circular(
                                Dimensions.radius20),
                            color: Colors.white38,
                            image: DecorationImage(
                                fit: BoxFit.cover,
                                image: CachedNetworkImageProvider(AppConstans
                                    .BASE_URL  
                                    AppConstans.UPLOAD_URL  
                                    allProduct
                                        .halksagligiproductList[index]
                                        .img!))),
                      ),
                      //text section
                      Expanded(
                        child: Container(
                          height: Dimensions.listViewTextContSize,
                          decoration: BoxDecoration(
                              borderRadius: BorderRadius.only(
                                  topRight: Radius.circular(
                                      Dimensions.radius20),
                                  bottomRight: Radius.circular(
                                      Dimensions.radius20)),
                              color: Colors.white),
                          child: Padding(
                            padding: EdgeInsets.only(
                                left: Dimensions.width10,
                                right: Dimensions.width10),
                            child: Column(
                              crossAxisAlignment:
                              CrossAxisAlignment.start,
                              mainAxisAlignment:
                              MainAxisAlignment.center,
                              children: [
                                BigText(
                                  text: allProduct
                                      .halksagligiproductList[index]
                                      .name!,
                                ),
                                SizedBox(
                                  height: Dimensions.height10,
                                ),
                                ExpandableProductText(
                                    text: allProduct
                                        .halksagligiproductList[index]
                                        .description!),
                                SizedBox(
                                  height: Dimensions.height10,
                                ),
                              ],
                            ),
                          ),
                        ),
                      )
                    ],
                  )),
            );
          })
          : const CircularProgressIndicator(
        color: AppColor.mainColor,
      );
    });
  }

In the above code, I am pulling the image name and description with getx. My question is: How can I search 13 different controllers with Getx, both by name and by the words in the description, on the search screen?

CodePudding user response:

 final searchController = Get.find<SearchController>();

You can use multiple time, this function in different screens.

CodePudding user response:

Declare final ilacProductController = Get.put(IlacProductController());

into the screen and use object ilacProductController for access.

  • Related