Home > Software design >  Flutter-GetX; Update list in item of list
Flutter-GetX; Update list in item of list

Time:12-21

I'm having a problem, I have a list let say (ListOne) and each item has a list let say (ListTwo), when I enter an item into ListOne, ListView.builder/ListView.separated for ListOne it works while when I enter an item into ListTwo ListView.builder/ListView.separated for ListTwo it doesn't it works, I've tried using the Obx Widget but it doesn't work

this is my LisView for ListOne

ListView.separated(
    itemBuilder: (context, index) {
         var _listOneItem = controller.listOne.elementAt(index);
         return ListOneItemWidget(item: __listOneItem);
    },
    separatorBuilder: (context, index) => SizedBox(height: 10.0),
    itemCount: controller.listOne.length,
),

and this is my ListView for ListTwo

ListView.builder(
    itemBuilder: (context, index) {
        var _listTwoItem = listOneItem.ListTwo.elementAt(index);
        return ListTwoItemWidget(item: _listTwoItem);
    },
    itemCount: listOneItem.ListTwo.length,
    shrinkWrap: true,
    physics: NeverScrollableScrollPhysics(),
),

CodePudding user response:

if you are using GetX library then wrap the ListView.builder()/ListView.separated() with Obx() widget and try having the listOne and listTwo as Observable fields which you will be using in Obx() method. Make sure you use Observable fields in Obx() in the first level of its usage rather than using in the nested children widgets.

for Eg: Proper Usage would be -

import 'package:get/get.dart';


List<dynamic> listOne = List.empty(growable : true).obs;
Obx(()
{
  var list = listOne.toList(growable:true);
  return ListView.builder();
}
);
  • Related