Здравствуйте, я хочу создать в Maui 8.0 функцию, которая будет привязывать прокрутку, например. например, когда вы пролиC#

Место общения программистов C#
Ответить
Anonymous
 Здравствуйте, я хочу создать в Maui 8.0 функцию, которая будет привязывать прокрутку, например. например, когда вы проли

Сообщение Anonymous »

Код: Выделить всё

private async void ScrollView_Scrolled(object sender, ScrolledEventArgs e)
{
if (isSnapping)
return;

isSnapping = true;

double scrollY = e.ScrollY;
int currentRow = (int)(scrollY / SnapItemHeight);
double snapTo;

// Determine scroll direction and calculate the snap position accordingly
if (scrollY > previousScrollY)
{
// Scrolling down
snapTo = (currentRow + 1) * SnapItemHeight;
}
else
{
// Scrolling up
snapTo = currentRow * SnapItemHeight;
}

// Ensure the snap position is within valid range
snapTo = Math.Max(0, snapTo);

// Small delay to ensure smooth snapping
await Task.Delay(50);  // Reduced delay for smoother snapping

// Snap to the calculated position
await scrollView.ScrollToAsync(0, snapTo, true);

// Update previous scroll position
previousScrollY = scrollY;
isSnapping = false;
}
я пытаюсь реализовать эту функцию, но это выглядит некрасиво, прокрутка движется посередине кругов, и это просто беспорядочно, я пытался передать это ИИ, но, если честно, это сделало все сложнее и я сейчас застрял. Буду рад любым предложениям

Код: Выделить всё

 private const double SnapItemHeight = 80;
private bool isSnapping;
private double previousScrollY = 0;
и, конечно, это для их объявления
если это выглядит странно, пожалуйста, дайте мне знать, я уже 3 месяца занимаюсь самообучением мобильных разработок, и мне было бы очень приятно, если бы есть какие-то предложения помимо этой темы

Подробнее здесь: https://stackoverflow.com/questions/786 ... g-like-whe
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»