Flutter学习笔记 —— 关于ScrollController附加到多个滚动视图的解决办法

前言

最近在写公司项目时,需要将一个

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毫秒是让页面刷新后可以准确到最底部。

感谢你的观看!

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇