flutter 动态设置列表定位到某个item,各item高度自适应内容

前言

在Flutter开发中,我们经常会用到滚动视图,比如使用ListView来展示一个长列表,有时我们会有这样的需求:

当点击某个按钮的时候,需要自动定位到ListView列表的某一项,也可能不是ListView,比如是SingleChildScrollView或者是CustomScrollView,为滚动列表的各个模块(各模块高度根据内容自适应)添加锚点定位时,我们又该如何快速的定位到某个item呢?

关于ListView中的滚动定位,相信大家一定会想到ScrollController组件,没错,我们可以定义一个ScrollController对象与该ListView进行绑定,然后使用ScrollController对象的jumpTo(double offset)方法就可以实现定位到某个位置了,但因为该方法的参数为double类型,也就意味着我们必须要知道要滚动到的位置在滑动方向上的偏移距离,当然了,如果列表中的每一项的高度都是相同的,那就很简单了,直接就可以计算出来,但实际情况并非这么简单,很多情况下列表的每一项的高度都是不确定的,并且随时可能发生变化,这样我们也就无法事先知道每一项的高度,那如何实现定位到某个item的位置呢?如何精确的根据索引index而不是偏移定位到某个item呢?

本篇我们将详细介绍如何在ListView,SingleChildScrollView,CustomScrollView等滚动布局中简单快速的实现根据索引 index 定位到某个模块,同时适合各模块高度固定以及可变两种情况。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智玲君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值