Я пытаюсь реализовать автоматическую прокрутку в ScrollView, но почему-то не могу понять, как правильно это сделать, моя идея, была бы что-то вроде, если я добавляю элемент, а contentSize переполняет ширину ScrollView, которую я должен прокрутитьдо конца, если я удаляю элемент, а contentSize меньше ширины ScrollView, я должен прокрутить до начала.
Вот что у меня есть
<ScrollView
horizontal
showsHorizontalScrollIndicator={false}
ref={(scrollView) => {
this.scrollView = scrollView;
}}
onLayout={(e) => {
this.layoutWidth = e.nativeEvent.layout.width;
}}
onContentSizeChange={(contentWidth, contentHeight) => {
this.scrollView.scrollTo({
x: contentWidth > this.layoutWidth ? contentWidth + this.layoutWidth - width : 0,
y: 0,
animated: true,
});
}}>
{contacts.map((contact) => (
<SelectedContacsItem
contact={contact}
onRemoveContactPress={onRemoveContactPress}
key={contact.id}
/>
))}
</ScrollView>
Это не такРаботая с процессом удаления элементов, на последних элементах (когда содержимое становится меньше, чем представление), он перемещает содержимое в случайные позиции, я добавил реквизит onScroll и оттуда наблюдал журналы, и кажется, что проблема в contentOffSet, потому что онимеет случайные значения (иногда отрицательные значения, иногда большие числа), но не уверен, как его решить.