Flutter之ListView翻转,自动滑动到底部

场景:最近做的客服系统,进入页面直达最底部,发送消息或者接收到他人消息后,消息列表都会自动滑动到底部,不需要我们手动滑动,这样的用户体验好

实现:

ListView布局,然后reverse反转

ListView.builder(
reverse: true, //翻转
shrinkWrap: true,
physics:PageScrollPhysics(parent: ClampingScrollPhysics()),
controller: _scrollController,
itemCount: messageList.length,
itemBuilder: (context, index) {
            Column(
                children: []
)
}

因为listview翻转了,所以储存聊天信息的数组也要翻转

//数组翻转
list.reversed

滑到底部:

ListView使用ScrollController来控制滑动,其中有jumpToanimateTo2个方法滑动到指定的位置

因为我们对listView进行了翻转,所以顶部就是底部

ScrollController _scrollController = ScrollController();
// 自动滑到底部
  autoSlide() {
    // 滑动到顶部
    // Future.delayed(Duration(milliseconds: 500), () {
    //  {_scrollController.position.minScrollExtent 滑到顶部
    //   // _scrollController.position.maxScrollExtent  滑到底部
    //   _scrollController.jumpTo(_scrollController.position.minScrollExtent);
    // });
       // 返回到顶部时执行动画
     _scrollController.animateTo(.0,
        duration: Duration(milliseconds: 200), curve: Curves.ease);
  }

你可能感兴趣的:(Flutter,flutter,android)