Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 如何在Flatter中获取ScrollView中的子滚动偏移位置_Flutter - Fatal编程技术网

Flutter 如何在Flatter中获取ScrollView中的子滚动偏移位置

Flutter 如何在Flatter中获取ScrollView中的子滚动偏移位置,flutter,Flutter,我制作了一个CustomScrollView小部件,其中包含: 滑杆 滑冰机 银栅 滑冰机 银栅 SLVER SturnEnter将是SLaveGrand中的条目的描述,一旦它被轻击(我用GestureDetector包装),我希望滚动偏移在SLLVER持久化的中间改变。< /P> 怎么做?ScrollController似乎只知道滚动范围,到目前为止,我还没有在ScrollView(CustomScrollView继承)中看到任何可以提供单个小部件的偏移位置的属性。根据文档,S

我制作了一个CustomScrollView小部件,其中包含:

  • 滑杆

  • 滑冰机

  • 银栅

  • 滑冰机

  • 银栅

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),但是我找不到任何与上面的方法相同的方法。。。