title: checkbox list does not update in flutter getx
body: <p>I am using GetX for the state management in flutter project. My problem is when I click on the checkbox it updates the state in controller but does not show the result in UI. In general the changed state should change the UI too. I am not sure what is the problem but I think there is a bug in using the observable variable in getx. How to solve this problem? If the post is not clear then please ask me.</p>
  <p>This is the view.</p>
  <pre><code>class FilterBottomSheetWidget extends GetView&lt;SearchController&gt; {
  @override
  Widget build(BuildContext context) {
    return Container(
    height: Get.height - 90,
    child: Stack(
      children: &lt;Widget&gt;[
        Padding(
          padding: const EdgeInsets.only(top: 80),
          child: Container(
            padding: EdgeInsets.only(top: 20, bottom: 15, left: 4, right: 4),
            child: controller.expiringContractStatus.isEmpty ? CircularLoadingWidget(height: 100)
              : SingleChildScrollView(
                scrollDirection: Axis.vertical,
                child: ExpansionTile(
                        title: Text(&quot;Contract Status&quot;.tr, style: Get.textTheme.bodyText2),
                        children: List.generate(controller.expiringContractStatus.length, (index) {
                          var _expiringContractStatus = controller.expiringContractStatus.elementAt(index);
                          return CheckboxListTile(
                            controlAffinity: ListTileControlAffinity.trailing,
                            value: _expiringContractStatus[&quot;isCheck&quot;], // ************
                            onChanged: (value) {
                              controller.itemChange(value, index); // ************
                              controller.update();
                            },
                            title: Text(
                              _expiringContractStatus[&quot;title&quot;],
                              style: Get.textTheme.bodyText1,
                              overflow: TextOverflow.fade,
                              softWrap: false,
                              maxLines: 1,
                            ),
                          );
                        }),
                        initiallyExpanded: true,
                      );
                    }                   
              )
          ),
        ),
       // more widgets
      ],
    ),
  );
   }
   }
  </code></pre>
  <p>This is SearchController.</p>
  <pre><code>class SearchController extends GetxController {
  final expiringContractStatus = &lt;Map&gt;[
    {
      &quot;title&quot;: &quot;aaa&quot;,
      &quot;isCheck&quot;: false
    },
    {
      &quot;title&quot;: &quot;bbb&quot;,
      &quot;isCheck&quot;: false
    },
    {
      &quot;title&quot;: &quot;ccc&quot;,
      &quot;isCheck&quot;: false
    }        
  ].obs;
  
  @override
  void onInit() async {
    await refreshSearch();
    super.onInit();
  }
  
  void itemChange (bool value, int index) {
    expiringContractStatus[index][&quot;isCheck&quot;] = value; // *************
    update();
  }
  }
  </code></pre>