Flutter 如何在Flatter中获取ScrollView中的子滚动偏移位置
我制作了一个CustomScrollView小部件,其中包含:Flutter 如何在Flatter中获取ScrollView中的子滚动偏移位置,flutter,Flutter,我制作了一个CustomScrollView小部件,其中包含: 滑杆 滑冰机 银栅 滑冰机 银栅 SLVER SturnEnter将是SLaveGrand中的条目的描述,一旦它被轻击(我用GestureDetector包装),我希望滚动偏移在SLLVER持久化的中间改变。< /P> 怎么做?ScrollController似乎只知道滚动范围,到目前为止,我还没有在ScrollView(CustomScrollView继承)中看到任何可以提供单个小部件的偏移位置的属性。根据文档,S
- 滑杆
- 滑冰机
- 银栅
- 滑冰机
- 银栅
SLVER SturnEnter将是SLaveGrand中的条目的描述,一旦它被轻击(我用GestureDetector包装),我希望滚动偏移在SLLVER持久化的中间改变。< /P>
怎么做?ScrollController似乎只知道滚动范围,到目前为止,我还没有在ScrollView(CustomScrollView继承)中看到任何可以提供单个小部件的偏移位置的属性。根据文档,
ScrollController
有一个偏移属性:因此这就是如何获取当前偏移的方法
如果要滚动到特定位置,可以使用animateTo
方法:。例如:
scrollController.animateTo(123, duration: Duration(seconds: 1), curve: Curves.easeIn);
在这种情况下,您应该计算要滚动的偏移值(示例中为123)
如果您需要“查找”偏移值,一种方法是使用小部件上的键,并通过使用RenderObject获得它的位置。这在回答中得到了解释:您关于从RenderObject中查找小部件位置的建议似乎很有希望,但您上面提供的链接似乎已经过时,我在RenderObject对象中再也找不到RenderObject.localToGlobal()。为了找到该方法,您应该将类型强制转换为RenderBox,例如,
final renderBox=key.currentContext.finderObject()作为renderBox代码>。我看到我已经将它输入到RenderShiver中(因为它是sliver),但是我找不到任何与上面的方法相同的方法。。。