Как я могу определить, добавлен ли элемент ListView вне экрана? - PullRequest
0 голосов
/ 26 марта 2020

Как я могу определить, был ли элемент ListView добавлен вне экрана? Я хотел бы перейти к вновь добавленному элементу, если он был добавлен вне экрана.

Ниже приведен минимальный пример. Если вы продолжаете нажимать кнопку «+», элемент будет добавлен за пределы экрана. Я хотел бы обнаружить этот случай, а затем перейти к вновь добавленному элементу.

class _MyHomePageState extends State<MyHomePage> {
  List<String> _items = [];

  void _addItem() {
    final count = _items.length + 1;

    setState(() {
      _items.add('Item $count');
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: ListView.builder(
          itemCount: _items.length,
          itemBuilder: (_, index) {
            return Container(
              height: 50,
              child: Card(
                child: Row(
                  mainAxisAlignment: MainAxisAlignment.spaceAround,
                  children: <Widget>[
                    Text(_items[index]),
                  ],
                ),
              ),
            );
          }),
      floatingActionButton: FloatingActionButton(
        onPressed: _addItem,
        tooltip: 'Add Item',
        child: Icon(Icons.add),
      ),
    );
  }
}

1 Ответ

1 голос
/ 26 марта 2020

https://dartpad.dev/81dcfd6e4255bde548751180c54a9ade

Проверьте это. Вам нужно использовать контроллер прокрутки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...