滚动监听_【Flutter】 SingleChildScrollView单个组件的滚动组件

0a040bf79ca0045d07dcfce4845172ec.gif

说明

当遇到内容较多时,需要滚动组件进行展示,SingleChildScrollView是一个只能包含单个组件的滚动组件,如果内容较多,建议使用ListView等,因为SingleChildScrollView没有“懒加载”模式,性能不如ListView。

常用属性说明

  • key:当前元素的唯一标识符(类似于 Android 中的 id)

  • scrollDirection:滚动方向,默认是垂直

  • reverse:是否按照阅读方向相反的方向滑动。

  • padding:填充距离

  • primary:是否使用 widget 树中默认的 PrimaryScrollController 。当滑动方向为垂直方向(scrollDirection值为Axis.vertical)并且controller没有指定时,primary默认为true

  • physics:此属性接受一个ScrollPhysics对象,它决定可滚动Widget如何响应用户操作,比如用户滑动完抬起手指后,继续执行动画;或者滑动到边界时,如何显示。默认情况下,Flutter会根据具体平台分别使用不同的ScrollPhysics对象,应用不同的显示效果,如当滑动到边界时,继续拖动的话,在iOS上会出现弹性效果,而在Android上会出现微光效果。如果你想在所有平台下使用同一种效果,可以显式指定,Flutter SDK中包含了两个ScrollPhysics的子类可以直接使用:
    ClampingScrollPhysics→Android下微光效果 

    BouncingScrollPhysics→iOS下弹性效果

  • controller:此属性接受一个ScrollController对象。ScrollController的主要作用是控制滚动位置和监听滚动事件

  • child:子元素

示例演示

import 'package:flutter/material.dart';

class SingleChildScrollViewDemo extends StatefulWidget {
  @override
  StatecreateState() {
    return SingleChildScrollViewDemoState();
  }
}

class SingleChildScrollViewDemoState extends State<SingleChildScrollViewDemo> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Demo"),
      ),
      body: SingleChildScrollView(
// scrollDirection: Axis.horizontal,
        reverse: false,
        padding: EdgeInsets.all(8),
        child: Container(
          color: Colors.red,
          height: 1500,
          alignment: Alignment.center,
          width: double.infinity,
          child: Text(
            "码\n上\n加\n油\n站\n,\n一\n起\n来\n加\n油\n吧\n,\n学\n习\nFLutter!",
            style: TextStyle(fontSize: 28),
          ),
        ),
      ),
    );
  }
}

效果:

83029edfdac99aa455be21a728ff91e3.gif

  码上加油站

  一起来加油

长按扫码关注

822328a95582e45d93d35feee77dec0d.png

点“在看”你懂得

73e4ac3b5fd40d2059576abd876334ce.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值