2017-01-02 7 views
0

Я работаю над проектом Xamarin Forms и встал с проблемой, где я хочу открыть несколько всплывающих окон. Поскольку Forms не имеет встроенных всплывающих окон, у меня разные страницы XAML, и я загружаю их внутри моего MainPage.XAML и изменяя видимость, когда это необходимо.Задержка форм Xamarin в навигации

**Popup_1.XAML** 

<?xml version="1.0" encoding="utf-8" ?> 
<StackLayout xmlns="http://xamarin.com/schemas/2014/forms" 
xmlns:x=http://schemas.microsoft.com/winfx/2009/xaml 
x:Class="ABC.Views.Popup_1"> 

<StackLayout > 
<Label Text="{Binding FirstName}" VerticalOptions="CenterAndExpand" HorizontalOptions="StartAndExpand" Font="Large" TextColor="Black" /> 
</StackLayout> 

</StackLayout> 

У меня есть много макетов, таких как Popup_1, которые я хочу, чтобы они отображались как всплывающие окна. Вот мой MainPage.XAML здесь содержит 3 всплывающих макета.

**MainPage.XAML** 

<?xml version="1.0" encoding="utf-8" ?> 
<ContentPagexmlns="http://xamarin.com/schemas/2014/forms" 
xmlns:x=http://schemas.microsoft.com/winfx/2009/xaml 
xmlns:controls="clr-namespace:ABC.Views;assembly=ABC" 
x:Class="ABC.Views.MainPage"> 

<AbsoluteLayout BackgroundColor="Transparent" Padding="10" IsVisible="{Binding ShowPopup_1}" HorizontalOptions="CenterAndExpand" VerticalOptions="CenterAndExpand" > 
     <StackLayout Orientation="Horizontal" BackgroundColor="Transparent" AbsoluteLayout.LayoutBounds="0.5, 0.5, -1, -1" AbsoluteLayout.LayoutFlags="PositionProportional" > 
      <controls:Popup_1 /> 
     </StackLayout> 
    </AbsoluteLayout> 


<AbsoluteLayout BackgroundColor="Transparent" Padding="10" IsVisible="{Binding ShowPopup_2}" HorizontalOptions="CenterAndExpand" VerticalOptions="CenterAndExpand" > 
     <StackLayout Orientation="Horizontal" BackgroundColor="Transparent" AbsoluteLayout.LayoutBounds="0.5, 0.5, -1, -1" AbsoluteLayout.LayoutFlags="PositionProportional" > 
      <controls:Popup_2 /> 
     </StackLayout> 
    </AbsoluteLayout> 

<AbsoluteLayout BackgroundColor="Transparent" Padding="10" IsVisible="{Binding ShowPopup_3}" HorizontalOptions="CenterAndExpand" VerticalOptions="CenterAndExpand" > 
     <StackLayout Orientation="Horizontal" BackgroundColor="Transparent" AbsoluteLayout.LayoutBounds="0.5, 0.5, -1, -1" AbsoluteLayout.LayoutFlags="PositionProportional" > 
      <controls:Popup_3 /> 
     </StackLayout> 
    </AbsoluteLayout> 


</ContentPage> 

Проблема заключается в том, когда я пытаюсь перейти к MainPage.xaml он принимает много времени для навигации. Есть ли стандартное решение для этой проблемы? или Как я могу справиться с этой задержкой? Примечания: Я использую MVVM привязку шаблон, чтобы изменить видимость макетов

ответ

0

Как формы не имеет в сборке POPUPS

См этой странице документация

https://developer.xamarin.com/guides/xamarin-forms/user-interface/navigation/pop-ups/

+0

Это единственное окно оповещения или Лист действия. Не всплывающее окно, которое нам нужно в нашем проекте. Нам нужно иметь собственные макеты с разными полями, привязанными к нашему ViewModel. –

0

Вы правы, чтобы использовать ContentPage, чтобы настроить собственное всплывающее диалоговое окно, но обычным способом показать это настраиваемое диалоговое окно не является настройка видимости родительского элемента r. Нам нужно отобразить его с помощью PushModalAsync и отклонить его, используя PopModalAsync.

Для примера кода вы можете обратиться к PushModalAsync или PopModalAsync.

Я не уверен, что блокирует ваш пользовательский интерфейс, чтобы вызвать задержку навигации, так как вы не разместили какой-либо код позади своего диалога. В любом случае, вы можете попытаться нажать и всплыть на модной странице и посмотреть, поможет ли это.

Смежные вопросы