我一直在玩我喜歡的Exrin Xamarin Forms框架。Xamarin Forms Exrin Framework將容器推送爲Modal?
我已經到了一個阻擋者,我想推一個容器作爲模態。任何人都知道如何做到這一點的任何提示?我無法找到任何示例,或者有關如何將容器推入Modal的最佳方法。
望着Exrin碼,可能需要更改BaseStack.cs
,創建一個NavigationModal
ResultType
,生活方式,因此它不會在存儲容器等已經影響...?
還有其他想法嗎?
我一直在玩我喜歡的Exrin Xamarin Forms框架。Xamarin Forms Exrin Framework將容器推送爲Modal?
我已經到了一個阻擋者,我想推一個容器作爲模態。任何人都知道如何做到這一點的任何提示?我無法找到任何示例,或者有關如何將容器推入Modal的最佳方法。
望着Exrin碼,可能需要更改BaseStack.cs
,創建一個NavigationModal
ResultType
,生活方式,因此它不會在存儲容器等已經影響...?
還有其他想法嗎?
Exrin及其Stacks背後的想法是不需要Modal。 Modals的唯一原因是,對於一個頁面,您不能只是從現有頁面的頂部按回來。
這裏推薦的方法是創建一個新的堆棧並導航到那個。然後在完成後返回到前一個堆棧。它的行爲方式與Modal相同,但您不需要實際使用Modal。
更新
如果你必須有一個模式,而其他的方式來支持過渡開始發揮作用,你可以修改你NavigationProxy。替換下面的2個函數。
public async Task PopAsync()
{
if (_page.Navigation.ModalStack.Count > 0)
{
var page = _page.Navigation.ModalStack[0];
_page_Popped(null, new NavigationEventArgs(page));
await _page.Navigation.PopModalAsync();
}
else
await _page.PopAsync();
}
public async Task PushAsync(object page)
{
var xamarinPage = page as Page;
if (xamarinPage == null)
throw new Exception("PushAsync can not push a non Xamarin Page");
if (page is ExrinSample.View.AboutView)
await _page.Navigation.PushModalAsync(xamarinPage);
else
await _page.PushAsync(xamarinPage);
}
當然這是手動引用您的代理中的特定頁面。如果你想清理它,你可以在你的堆棧中添加一些方法來列出模態的頁面,並根據需要使用該列表推送到模態,而不是直接將頁面名稱放在代理中。
好吧,有趣。我會給你一些我想要做的背景。我有一個TabbedPage,其中一個Tabs有一個浮動操作按鈕。當點擊該按鈕時,我需要一個頁面模式(或堆棧,只需要一個視圖),彈出並獲取整個屏幕(即隱藏標籤,導航,所有內容)......然後彈出完成後... – dimoss
一個新的堆棧,映射一個頁面,將是實現這一目標的途徑。然後導航到該堆棧。也許我還需要研究如何使這些類型的場景變得更快更容易。 –
很酷的工作。但我真的需要一個模態動畫。你知道我可以做到的任何方式,即使我甩Exrin嗎? – dimoss