使用Xamarin.Forms进行自定义导航

时间:2014-08-19 15:57:15

标签: xamarin xamarin.forms

我正在开发适用于Android和iOS的应用程序,这需要一个或两个视图具有一定的灵活性。这就是为什么我们创造了&实现了一个服务,该服务将基本的对象列表转换为用户界面,用于iOS和iOS。 Android系统。但是现在Xamarin.Forms发布了,我们决定用Xamarin提供的服务取代我们的服务。我确实成功地使用Xamarin.Forms创建了视图,从而获得了更好的外观和效果。更顺畅的运行页面。但我的问题在于它的导航。以下是我想要实现的目标:

enter image description here

我希望我的应用程序启动以自定义片段开头的活动。 点击此片段上的按钮后,我希望将我用Xamarin.Forms api创建的页面添加到我当前的导航堆栈中!一旦用户完成Xamarin.Forms页面,它就会导航到第二个自定义片段,所有这些都不会破坏导航周期。有没有人知道如何实现这个目标?

对于iOS开发人员:将Activity替换为NavigationController&使用ViewController的片段

2 个答案:

答案 0 :(得分:2)

查看CarouselPage的Xamarin.Forms'自己的方法。它看起来并不像你需要的东西,但你也可以查看它的源代码,也许你自己制作一个自定义渲染器。

您可能还想查看MVVM

至于你想要在每个页面上制作一个按钮的更容易/更黑客的方式,当按下按钮时执行Navigation.PushModalAsync(nextPage) - 它不会成为"<回到"按钮,如果需要,您可能需要自己实现。

答案 1 :(得分:2)

如果您使用“当前导航堆栈”的含义是使用每个平台的原生导航,请记住您不必使用 Xamarin.Forms '导航模型以及 PushAsync 等功能。

如果您希望使用特定于每个平台的代码执行导航,那么您可以像平常一样执行此操作。只需在每个平台特定的项目中创建存根页面,并为共享项目中的每个页面设置 Xamarin.Forms 内容

从每个平台特定的 存根页面(活动 / UIView / PhoneApplicationPage )然后你可以执行一个Action<> 共享 Xamarin.Forms 页面上的呼叫设置可帮助您进行导航,或者挂钩到从自定义事件中引发的自定义事件 Xamarin.Forms **页面返回平台特定的 存根页面,允许您从那里进行导航。

Sten 一样,没有任何“后退”按钮,所以你很可能不得不自己这样做。