用ListView時有一個很常見的需求,就是在輸入時鍵盤彈出會遮擋到輸入框,在網上查的都是使用這一段代碼:
_scrollController.jumpTo(_scrollController.position.maxScrollExtent);
在對鍵盤監聽,如果鍵盤彈出則visable = true, 使底部占位Wiget為:
visable ? SizedBox(height: 250) : Container()
這時會爆出以下錯誤:
剛開始以為是_scrollControll.jumpTo這段代碼的問題,后來對先加入底部占位Widget這種情況進行測試發現是完全可行的,
最后發現在滾動時加一個小的延時可以解決這個問題:
Future.delayed(Duration(milliseconds: 100), (){ _scrollController.jumpTo(_scrollController.position.maxScrollExtent); });