web-dev-qa-db-fra.com

Comment détecter la position de défilement de ListView dans Flutter

J'utilise le widget ListView pour afficher les éléments sous forme de liste. Dans une fenêtre trois, les éléments affichés doivent être placés au milieu.

Alors, comment puis-je détecter la position de ListView lorsque le défilement s'arrête?

Comment détecter le défilement de ListView arrêté?

14
majidfathi69

Vous pouvez également obtenir cette fonctionnalité avec les étapes suivantes

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