Flutter中Obx内的ListView加载图片后无法滚动问题求助
问题解决思路
移除包裹ListView的Container的固定宽度限制
你在Obx返回的Container上硬设置了width: 100,但该Container的外层已经是Expanded组件,Expanded会自动填充Row中剩余的可用横向空间,固定100宽度会直接限制ListView的可视区域,导致滚动区域被截断,删除这个width: 100属性即可。修正列表空值判断逻辑
Dart中List属于引用类型,直接使用editProductController.imgDataList.value != []做判断永远返回真(该逻辑比较的是两个数组对象的内存地址,而非内容),永远不会触发占位图的展示逻辑,将判断条件改为if(editProductController.imgDataList.value.isNotEmpty)即可。调整滚动配置
如果移除固定宽度后仍无法正常滚动,把ListView.builder中注释掉的physics: AlwaysScrollableScrollPhysics()配置放开,避免部分场景下滚动手势被上层组件消费导致无法响应滚动;如果列表元素数量较少时出现滚动异常,可以搭配添加shrinkWrap: true属性。确认状态监听逻辑
你当前给imgDataList.value直接赋值新列表的写法符合GetX的状态更新规范,Obx可以正常监听到状态变化,滚动异常和Obx组件本身无关,不需要调整这部分逻辑。
内容的提问来源于stack exchange,提问作者Kin Pu
相关产品推荐
相关产品推荐

