Это то, что я сделал:
NotificationListener(
onNotification: (t) {
if (t is UserScrollNotification) {
FocusScope.of(context).requestFocus(FocusNode());
}
},
child: ListView.builder(
itemBuilder: (_, i) => Container(),
itemCount: items.length,
),
);
Присоединение ScrollListener
не сработало для меня, потому что Android использует ClampingScrollPhysics
, и оно получит событие прокрутки, только если элементы ListView длиннее, чем родитель. Тем не менее, NotificationListener
получит все всплывающие события, включая UserScrollNotification
.
Я работаю параллельный проект с Шиканьем для реализации декларативного макроса привязки данных. Язык довольно прохладен! Это дает мне некоторый опыт в конструкции компилятора, которую я не имел.
Только для забавы я работаю с Шиканьем на Моно на Ubuntu 8.10.
Мой личный опыт с Шиканьем был приблизительно с 18 месяцев назад, и я не следовал за ним активно с тех пор, поэтому имейте это в виду wrt к тому, что я говорю. Это - прохладный язык. Но это также экспериментально. Что это означает на практике:
Там несоответствия и ошибки в иногда критических областях, потому что это еще не сделано.
Я не уверен, могут ли Дженерики быть созданы уже w/Шиканье, но они, конечно, могут быть использованы.
Производительность хороша, но компилятор не имеет оптимизатора.
Вывод типа прохладен. Утиный ввод прохладен. Все, что позволяет Вам приблизиться к иллюзии динамического контроля типов.
Лично, я работал над инструментом для создания творческой записи легче. Думайте IDE для устройств записи.
Некоторые использования, которые действительно соответствуют динамическому мышлению Шиканья:
В то время как это только использует Шиканье в качестве языка реализации (вместо того, чтобы быть существенно о Шиканье), Вы считали Ayende, "Создающего Предметно-ориентированные языки в Шиканье"? Это еще не полностью публикуется, но можно получить ранний выпуск доступа.
У меня не было времени для осторожного рассмотрения Шиканья все же, но основных преимуществ перед C# 3 (который получил некоторые функции Шиканья), кажется, краткость (большой вывод типа) и метапрограммирование.
Необходимо взглянуть на некоторые интересные функции языка Шиканья.