前言
最近在写公司项目时,需要将一个
SingleChildScrollView自动滑动到最底部于是出现了标题异常
解决思路
在Exception中有这样一段异常提示:‘_positions.length == 1’ 从字面意思来说理解为ScrollController存在多个。
提示存在多个,而ScrollController又拥有positions字段是一个迭代器,经过一分析,很快想到解决办法。
解决办法:获取ScrollController的positions中
maxScrollExtent 不为空的一项Position就行 代码示例
/*
* @Author Marinda
* @Description 跳转到最底部 处理Poistion len != 1的Bug 只取positions最后一条处理即可
* @Date 10:56 2023/2/14
**/
void jumpScrollBottom(){
state.scrollController.positions.forEach((element) {
Log.i("滑动数据:最大程度:${element.maxScrollExtent}");
});
Future.delayed(Duration(milliseconds: 300),(){
var positionValue = state.scrollController.positions.toList().last;
Log.i("当前最大程度: ${positionValue.maxScrollExtent}");
state.scrollController.animateTo(positionValue.maxScrollExtent, duration: Duration(seconds: 1), curve: Curves.ease);
});
}
延迟300毫秒是让页面刷新后可以准确到最底部。
感谢你的观看!