#flutter #flutter-layout
Вопрос:
Когда я нажимаю кнопку FloatingAction, добавьте новые 30 элементов поверх ListView
Затем ListView автоматически прокручивается до элемента 61
Я хочу, чтобы он оставался в пункте 30
-> Не использовать обратный
Исходный код https://gist.github.com/VNAPNIC/a0c279ab81ff7f7c7120b5c4207b5fe4
Ответ №1:
Это не удерживает прокрутку в нужном положении, но мы можем использовать controller.jumpTo
on increment, чтобы сохранить 30
ее в нужном положении.
void _incrementCounter() {
final startIndex = listItem.length - 1;
final endIndex = listItem.length 30;
for (int i = startIndex; i <= endIndex; i ) {
listItem.insert(0, 'Message -------> $i');
}
// 50 commig from container padding
const itemHeightWithPadding = 50 16;
setState(() {
// replace 30 with itemLength and set your logic,
controller.jumpTo(
(itemHeightWithPadding * 30) (16 * 8),
);
});
}
Комментарии:
1. В моем реальном проекте высота виджета является гибкой. Я не могу использовать Jump, потому что это хорошо для эффектов пользовательского интерфейса
2. в этом случае вы используете scroll_to_index
3. Я не хочу использовать Jump, потому что он не подходит для эффектов пользовательского интерфейса