Flutter 可滚动页面实现

1、CustomScrollView

继承实现了 ScrollView,可以通过 scrollDirection 控制水平(Axis.horizontal)还是 竖直方向(Axis.vertical)滚动。

主要实现slivers,SliverList要 实例化delegate。例子如下
CustomScrollView(
      scrollDirection: Axis.horizontal,
      slivers: <Widget>[
        SliverList(
          delegate: new SliverChildListDelegate(
            [
              Container(
                width: 1000,
                child: Text(
                  "CustomScrollView   scrollDirection: Axis.horizontal",
                  style: styleBlack54Size16WBold,
                ),
                alignment: Alignment.center,
              )
            ],
          ),
        ),
      ],
    )

 

 

2、ListView

ListView 主要实现Item列表,可以通过 itemCount 数量1只加载一个View从而实现滑动。实现如下

ListView.builder(
      scrollDirection: Axis.vertical,
      itemCount: 1,
      itemBuilder: (BuildContext context, int index) {
        return Container(
          height: 1500,
          color: Colors.blueAccent,
          alignment: Alignment.center,
          child:Text("ListView.builder",
            style: styleBlack54Size16WBold,),
        );
      },
    );

也可以

ListView(
          
          children: <Widget>[
            Container(
              height: 1500,
              alignment: Alignment.center,
              child: Text("Test"),
            )
          ],
        ),
      ),

 

:如果ListView 或者CustomScrollView 为 Column 子View,则需要把ListView包裹在Expand 下。

  Expanded(
          child: ListView.builder(
            scrollDirection: Axis.vertical,
            itemCount: 1,
            itemBuilder: (BuildContext context, int index) {
              return Container(
                height: 1500,
                color: Colors.blueAccent,
                alignment: Alignment.center,
                child: Text(
                  "ListView.builder",
                  style: styleBlack54Size16WBold,
                ),
              );
            },
          ),
        ),

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flutter滚动吸顶效果通常使用SliverAppBar和CustomScrollView组合来实现。 首先,我们需要在页面中添加一个CustomScrollView组件,它允许我们自定义滚动行为和视图。然后,在CustomScrollView中添加一个SliverAppBar组件,它将负责实现滚动吸顶的效果。 SliverAppBar组件有一个属性pinned,设置为true时,表示它会在滚动时保持固定在顶部。给SliverAppBar添加一个flexibleSpace属性,这个属性可以放入一个widget,通常用来展示一些背景图片或者标题文字。 接下来,我们需要在SliverAppBar下方添加一个SliverList组件,它会根据滚动的位置来动态调整子组件的显示位置。在SliverList中放入我们要滚动的内容。需要注意的是,如果内容过长,需要使用ListView组件进行包裹,以便提供滚动的能力。 在整个滚动效果实现的过程中,我们还可以使用SliverPersistentHeader组件,它可以创建一个固定高度的header部分,优化性能。 需要注意的是,滚动吸顶效果中,如果内容超出屏幕则可滚动,如果不超出屏幕则不可滚动,所以一定要设置正确的滚动区域。可以通过设置CustomScrollView的slivers属性,将SliverAppBar和SliverList包裹在一起。 通过上述步骤,我们可以实现滚动吸顶的效果。用户在滚动时,SliverAppBar会根据滚动位置自动进行展开和收缩。这种效果在很多移动应用的首页中都非常常见。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值