Flutter自定义Widget—随滑动改变高度的PageView

Posted Ever69

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flutter自定义Widget—随滑动改变高度的PageView相关的知识,希望对你有一定的参考价值。

可以随滑动展示不同高度的图片

效果

实现方案

使用PageController对PageView滑动监听,动态设置容器高度。

核心代码

_pageController.addListener(() 
      setState(() 
        //向左滑
        if (_pageController.page > _currentIndex) 
          _currentIndex = _pageController.page.floor();
          _nextIndex = _pageController.page.ceil();
          /* print(
              "向左滑--->value = $_pageController.page\\n current index = $_currentIndex");*/
          _pageViewHeight = _heightList[_currentIndex] +
              (_heightList[_nextIndex] - _heightList[_currentIndex]) *
                  (_pageController.page - _currentIndex);
        
        //向右滑
        else if (_pageController.page < _currentIndex) 
          _currentIndex = _pageController.page.ceil();
          _nextIndex = _pageController.page.floor();
          /*print(
              "向右滑--->value = $_pageController.page\\n current index = $_currentIndex");*/
          _pageViewHeight = _heightList[_currentIndex] +
              (_heightList[_nextIndex] - _heightList[_currentIndex]) *
                  (_currentIndex - _pageController.page);
        
      );
    );

资源下载

dynamicPageView

以上是关于Flutter自定义Widget—随滑动改变高度的PageView的主要内容,如果未能解决你的问题,请参考以下文章

Flutter ShowModalBottomSheet 自定义高度和滚动

flutter 完全使用GetX 主题切换 以及 自创建Widget的颜色随主题变化方案

flutter自定义控件 - StatefulWidget获取当前State

flutter组件

【Flutter】ListView、GridView高度自适应并随页面滚动

Flutter了解之可滑动组件