我想获得容器、小部件、堆栈等的“y”位置。当它显示在屏幕中央时,我想从图像(视频预览图像)更改为视频文件。我能怎么做?
我找到了屏幕高度。我计算了屏幕中心。我找不到集装箱的地方。
我创建了这样一个示例,但该项目并不位于中心。可能我在这里犯了一个算法错误?
class _DedectCenterState extends State<DedectCenter> {
Size _wSize;
int listSize = 4;
List<GlobalKey> _key = [];
ScrollController _sController;
_scrollListener() {
print("scrolling : " + _sController.offset.toString());
setState(() {
getPosition();
});}
@override
void initState() {
for(int i=0; i < listSize; i++) {
_key[i] = new GlobalKey();
}
_sController = ScrollController();
_sController.addListener(_scrollListener);
super.initState();
}
void getPosition(){
double _wCenterTop = (_wSize.height / 2) - 150.0;
double _wCenterBottom = (_wSize.height / 2) + 150.0;
print("center bottom: " + _wCenterBottom.toString());
print("center top: " + …Run Code Online (Sandbox Code Playgroud) 我制作了一个 CustomScrollView 小部件,其中包含:
银应用栏
Sliver持久标头
银格
Sliver持久标头
银格
SliverPercientHeader 将是 SliverGrid 中项目的描述,一旦点击(我用 GestureDetector 包裹它),我希望滚动偏移量在 SliverPercientHeader 所在的中间发生变化。
怎么做?ScrollController 似乎只知道滚动范围,到目前为止,我还没有在 ScrollView (CustomScrollView 继承的)中看到任何可以给我单个小部件的偏移位置的属性。
flutter ×2