web-dev-qa-db-ja.com

FlutterでListViewのスクロール位置を検出する方法

ListViewウィジェットを使用して、アイテムをリストとして表示しています。ウィンドウ3では、アイテムの表示は中央のアイテムが中央に配置されている必要があります。

では、スクロール停止時にListViewの位置をどのように検出できますか?

ListView Scrollingが停止したことを検出する方法は?

14
majidfathi69

次の手順でこの機能を実現することもできます

import 'package:flutter/material.Dart';

class YourPage extends StatefulWidget {
  YourPage({Key key}) : super(key: key);

  @override
 _YourPageState createState() => _YourPageState();
}

class _YourPageState extends State<YourPage> {

  ScrollController _scrollController;
  double _scrollPosition;

 _scrollListener() {
  setState(() {
   _scrollPosition = _scrollController.position.pixels;
 });
}

@override
void initState() {
  _scrollController = ScrollController();
  _scrollController.addListener(_scrollListener);
  super.initState();
}

 @override
 Widget build(BuildContext context) {
  return Scaffold(
  appBar: AppBar(
    automaticallyImplyLeading: false,
    title: Text('Position $_scrollPosition pixels'),
  ),
  body: Container(
      child: ListView.builder(
    controller: _scrollController,
    itemCount: 200,
    itemBuilder: (context, index) {
      return ListTile(
        leading: Icon(Icons.mood),
        title: Text('Item: $index'),
      );
    },
  )),
);
}
}

enter image description here

2
Seddiq Sorush