Сохраняйте подпредставление, выровненное по верху в .NET MAUI ScrollView [проблема с iOS] ⇐ C#
Сохраняйте подпредставление, выровненное по верху в .NET MAUI ScrollView [проблема с iOS]
У меня есть ВертикальныйStackLayout внутри ScrollView. Некоторые элементы внутри ВертикальногоStackLayout отображаются/скрываются динамически во время выполнения. Я заметил, что в iOS ВертикальныйStackLayout смещается вниз (меняется позиция Y) внутри ScrollView, когда он прокручивается, и после этого изменяется статус видимости одного из его дочерних элементов. Я считаю, что этого вообще не должно происходить. На Android он ведет себя так, как ожидалось (VerticalStackLayout остается сверху).
Шаги для воспроизведения:
[*]Создайте новое приложение .NET MAUI и измените разметку и код XAML на следующее:
XAML:
Код:
с использованием System.ComponentModel; пространство имен ScrollViewBug; общедоступный частичный класс MainPage: ContentPage { число интервалов = 0; публичная главная страница() { ИнициализироватьКомпонент(); MyStack.PropertyChanged += StackPropertyChanged; } частная пустота StackPropertyChanged (объект? отправитель, PropertyChangedEventArgs e) { если (e.PropertyName == "Y") { System.Diagnostics.Debug.WriteLine($"Этот стек Y: {Math.Floor(MyStack.Y)}"); } } частная пустота OnCounterClicked (отправитель объекта, EventArgs e) { считать++; если (счет == 1) CounterBtn.Text = $"Кликнут {count} раз"; еще CounterBtn.Text = $"Кликнут {count} раз"; MyGrid.IsVisible = !MyGrid.IsVisible; SemanticScreenReader.Announce(CounterBtn.Text); } } Есть ли способ создать собственный обработчик, который сохраняет подпредставления ScrollView на месте (Y=0) при изменении ContentSize подпредставления?
Я пытался перехватить изменения в ScrollView ContentSize с помощью специального обработчика и заменить фрейм подпредставления (изменив его положение Y на ноль), но это не дало никакого эффекта.
Я использую Visual Studio для Mac 17.6.6 (сборка 408) + .NET 8 RC2.
У меня есть ВертикальныйStackLayout внутри ScrollView. Некоторые элементы внутри ВертикальногоStackLayout отображаются/скрываются динамически во время выполнения. Я заметил, что в iOS ВертикальныйStackLayout смещается вниз (меняется позиция Y) внутри ScrollView, когда он прокручивается, и после этого изменяется статус видимости одного из его дочерних элементов. Я считаю, что этого вообще не должно происходить. На Android он ведет себя так, как ожидалось (VerticalStackLayout остается сверху).
Шаги для воспроизведения:
[*]Создайте новое приложение .NET MAUI и измените разметку и код XAML на следующее:
XAML:
Код:
с использованием System.ComponentModel; пространство имен ScrollViewBug; общедоступный частичный класс MainPage: ContentPage { число интервалов = 0; публичная главная страница() { ИнициализироватьКомпонент(); MyStack.PropertyChanged += StackPropertyChanged; } частная пустота StackPropertyChanged (объект? отправитель, PropertyChangedEventArgs e) { если (e.PropertyName == "Y") { System.Diagnostics.Debug.WriteLine($"Этот стек Y: {Math.Floor(MyStack.Y)}"); } } частная пустота OnCounterClicked (отправитель объекта, EventArgs e) { считать++; если (счет == 1) CounterBtn.Text = $"Кликнут {count} раз"; еще CounterBtn.Text = $"Кликнут {count} раз"; MyGrid.IsVisible = !MyGrid.IsVisible; SemanticScreenReader.Announce(CounterBtn.Text); } } Есть ли способ создать собственный обработчик, который сохраняет подпредставления ScrollView на месте (Y=0) при изменении ContentSize подпредставления?
Я пытался перехватить изменения в ScrollView ContentSize с помощью специального обработчика и заменить фрейм подпредставления (изменив его положение Y на ноль), но это не дало никакого эффекта.
Я использую Visual Studio для Mac 17.6.6 (сборка 408) + .NET 8 RC2.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как остановить MBProgressHUD и добавить подпредставление, когда сервер не возвращает данные
Anonymous » » в форуме IOS - 0 Ответы
- 6 Просмотры
-
Последнее сообщение Anonymous
-