У меня есть класс SplashScreen, где я показываю масштабирование изображения, и после завершения масштабирования он переходит на страницу входа. Я пробовал это на нескольких устройствах, и только на одном устройстве он не меняется с SplashScreen.
Я изучал, как обрабатывать асинхронные методы и ждать инструкций, но пока ничего не работает. Также я попытался удалить ScaleTo и просто показать изображение, но это не работает.
Вот что у меня есть:
protected override async void OnAppearing()
{
base.OnAppearing();
await splashLogo.ScaleTo(1.5, 3000);
ShowLogin();
}
Если вы тестируете приложение для iOS, я бы рекомендовал просмотреть сообщение iOS в консоли XCode. После подключения iPad к Mac с помощью док-кабеля вы можете запустить XCode и перейти в «Окно» -> «Устройства и симуляторы». Всплывающее окно позволяет открыть журналы устройства и запустить консольное приложение. Консольное приложение показывает отладочную информацию, которая передается с устройства в режиме реального времени.
@IvanIčin Это происходит только с S10, и я не могу предоставить доступ к коду из-за политики конфиденциальности моего работодателя. Я знал, что спрашивать что-то подобное без контекста было бы слишком далеко.
@testingandtesting, я нашел эту статью об использовании slpashscreen, я попробовал этот образец, и у меня нет проблем, вы можете посмотреть: xamaringuyhome.blogspot.com/2017/10/…
@CherryBu Это точно такой же код, который у меня есть для SplashScreen, но он не переходит в Application.Current.MainPage = new NavigationPage(new Page1());. Он отлично работает на всех устройствах, которые я тестировал, проблема только с S10.
@testingandtesting, возможно, подключит устройство и просмотрит журнал устройства при запуске приложения, там может быть подсказка. xamarininsider.com/2017/07/18/…
@NigelFerrissey Я пробовал это, но я не совсем уверен, как интерпретировать информацию, которую он мне дает. Я не смог найти ничего с ключевым словом Error или Exception.





Я решил эту проблему, добавив этот класс:
class MainPageViewModel : BaseViewModel
{
private bool isLoadingData;
public bool IsLoadingData
{
get => isLoadingData;
set => SetProperty(ref isLoadingData, value);
}
public async Task LoadData()
{
IsLoadingData = true;
await Task.Delay(2000);
IsLoadingData = false;
}
}
Затем на моей странице SplashScreen:
public SplashScreen()
{
//Everything else I need in this page
BindingContext = new MainPageViewModel();
}
private MainPageViewModel ViewModel => BindingContext as MainPageViewModel;
protected override async void OnAppearing()
{
base.OnAppearing();
await ViewModel.LoadData();
ShowLogin();
}
Если бы у меня была проблема только на одном устройстве Android, я был бы доволен результатом, если только это не какая-то действительно крупная модель. По-прежнему можно спросить, как это исправить, но для этого требуется тестирование на конкретном устройстве и доступ ко всему вашему коду. Поэтому я рекомендую этот вопрос закрыть, хотя, если вы предоставите код, необходимый для воспроизведения проблемы, и информацию об устройстве, возможно, кто-то сможет проверить и ответить...