La extracción de Flutter ListView.Builder funciona en iOS pero no en Android
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.
Aceptado
Según mi experiencia, el paquete pull_to_refresh es excelente. Recomiendo probarlo, ya que funciona perfectamente en plataformas Android e iOS.