У меня есть простое приложение Xamarin Form со стандартным проектом. net и Android Project. Я столкнулся с проблемой, так как в первый же день разработки я не могу использовать тосты и индикатор активности в своих формах. Я не знаю почему? Я испробовал почти все основные плагины.
Вот мой код входа, где я хочу увидеть тост. Я использовал UserDialogs, Forms.Plugin и c, а теперь использую Plugin.Toast.
protected void BtnLogin_Clicked(object sender, EventArgs e)
{
try
{
CrossToastPopUp.Current.ShowToastMessage("Message"); // Plugin.Toast package
var userName = TxtUserName.Text.Trim();
var password = TxtPassword.Text.Trim();
userController.DoLogin(userName, password);
}
catch (NullReferenceException)
{
DisplayAlert("Mobile # and Password, both are required.", "JCAA", "OK");
}
catch (Exception ex)
{
DisplayAlert(ex.Message, "JCAA", "OK");
Crashes.TrackError(ex);
}
}
UPDATE
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="JCAA.Views.Login" NavigationPage.HasNavigationBar="False" BackgroundColor="#ffffff">
<ContentPage.Content>
<StackLayout HorizontalOptions="Fill" VerticalOptions="StartAndExpand">
<StackLayout VerticalOptions="StartAndExpand">
<Image Source="logo.png" Aspect="AspectFit" HeightRequest="150" Scale="0.8" ></Image>
</StackLayout>
<StackLayout VerticalOptions="StartAndExpand" HeightRequest="70">
<Label Text="JCAA" HorizontalOptions="CenterAndExpand" FontSize="50" VerticalOptions="Start" FontFamily="{StaticResource JostBold}" TextColor="SeaGreen"></Label>
<Label Text="Jh Cul Art Association" HorizontalOptions="CenterAndExpand" FontSize="10" VerticalOptions="Start" FontFamily="{StaticResource JostBold}" TextColor="SeaGreen"></Label>
</StackLayout>
<StackLayout HorizontalOptions="Center" WidthRequest="300" HeightRequest="140" VerticalOptions="StartAndExpand" Margin="30">
<Entry x:Name="TxtUserName" MaxLength="10" Placeholder="Mobile Number" FontFamily="{StaticResource JostReg}" HorizontalTextAlignment="Center" FontSize="30" Keyboard="Numeric" Completed="TxtUserName_Completed"></Entry>
<Button x:Name="BtnLogin" Text="Login" Clicked="BtnLogin_Clicked" BackgroundColor="DarkSlateBlue" TextColor="White" FontFamily="{StaticResource JostReg}" FontSize="20"></Button>
</StackLayout>
<StackLayout Orientation="Horizontal" HorizontalOptions="FillAndExpand">
<StackLayout HorizontalOptions="CenterAndExpand">
<Label Text="New User?? Register your mobile with us." HorizontalTextAlignment="Center" FontSize="11" VerticalTextAlignment="Center" TextColor="DarkSlateBlue" FontFamily="{StaticResource JostReg}"></Label>
<ImageButton Source="signup.png" BackgroundColor="Transparent" HeightRequest="40" Aspect="AspectFit" x:Name="BtnSignUp" Clicked="BtnSignUp_Clicked" ></ImageButton>
</StackLayout>
<StackLayout HorizontalOptions="CenterAndExpand">
<Label Text="Lost Phone!!" HorizontalTextAlignment="Center" FontSize="9" VerticalTextAlignment="Center" TextColor="DarkSlateBlue" FontFamily="{StaticResource JostReg}"></Label>
<ImageButton x:Name="BtnRecoverPassword" BackgroundColor="Transparent" HeightRequest="40" Aspect="AspectFit" Clicked="BtnRecoverPassword_Clicked" Source="passwordreset.png" ></ImageButton>
</StackLayout>
</StackLayout>
<StackLayout Padding="30" HeightRequest="220" HorizontalOptions="Center" VerticalOptions="CenterAndExpand">
<Label FontSize="13" TextColor="DarkSlateBlue" HorizontalOptions="Center" VerticalOptions="EndAndExpand">
<Label.FormattedText>
<FormattedString>
<Span FontFamily="{StaticResource JostThin}" TextColor="Black" FontSize="18">
powered by
</Span>
<Span Text=" a" TextColor="Red" ></Span>
<Span Text="r" TextColor="Black"></Span>
<Span Text=" technosoft" TextColor="Black">
</Span>
</FormattedString>
</Label.FormattedText>
</Label>
</StackLayout>
</StackLayout>
</ContentPage.Content>
Выше xaml моего страница авторизации. Я использую стандартный стиль разработки формы windows. Здесь нет никакого MVVM. Этот тост находится на моей странице входа, и мой тост появляется, когда все коды, написанные для события BtnLogin_Clicked, выполняются и появляется следующая целевая страница. Поскольку мой процесс входа в систему занимает 4-5 секунд, поэтому в этом окне я хочу показать пользователю тост.
это происходит во всем моем приложении. При желании всплывает только предупреждение.
Теперь я изменил свой код на использование встроенного тоста двумя способами:
Device.BeginInvokeOnMainThread(()=> DependencyService.Get<IToast>().Show("Toast Message"));
DependencyService.Get<IToast>().Show("Toast Message");
Но ни одно из вышеперечисленных не работает должным образом . тост появляется, но после выполнения всех блоков кода.
VS2019 и все модули обновлены.