Toast не работает в Xamarin Forms Project - PullRequest
0 голосов
/ 08 мая 2020

У меня есть простое приложение 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");

Но ни одно из вышеперечисленных не работает должным образом . тост появляется, но после выполнения всех блоков кода. enter image description here

VS2019 и все модули обновлены.

...