La extracción de Flutter ListView.Builder funciona en iOS pero no en Android

Resuelto chichi asked hace 9 meses • 0 respuestas
  late ScrollController _controller;
  bool pulling = false;

  Future<void> _refresh() async {

  _scrollListener() async {
    //for right end
    if (_controller.offset - _controller.position.maxScrollExtent >= 100 &&
        !pulling) {
      setState(() {
        pulling = true;
      });
    }
    if (_controller.offset - _controller.position.maxScrollExtent < 10.0 &&
        pulling) {
      setState(() {
        pulling = false;
      });
      _controller.animateTo(
        _controller.position.minScrollExtent,
        duration: Duration(seconds: 2),
        curve: Curves.fastOutSlowIn,
      );
      await _refresh();
    }
  }

  @override
  void initState() {
    _controller = ScrollController();
    _controller.addListener(_scrollListener);

    super.initState();
  }

  @override
  void dispose() {
    super.dispose();
    _controller.removeListener(_scrollListener);
    _controller.dispose();
  }


ListView.builder(
  controller: _controller,
  scrollDirection: Axis.horizontal,
  itemCount: 10,
  itemBuilder: (c, i) {
    return Padding(
      padding: EdgeInsets.only(right: 15.0),
      child: Container,
    );
  },
),
   

Tengo este código para hacer un "extraer para actualizar". Funciona en dispositivos iOS, sin embargo, no funciona en Android y me pregunto por qué es así o si cometí algún error.

chichi avatar Feb 16 '24 20:02 chichi
Aceptado

Según mi experiencia, el paquete pull_to_refresh es excelente. Recomiendo probarlo, ya que funciona perfectamente en plataformas Android e iOS.

WebDesk Solution avatar Feb 16 '2024 13:02 WebDesk Solution