xamarin.forms中的导航如何工作?

时间:2014-08-18 09:41:30

标签: android xamarin.forms

因为我在android中使用xamarin.forms,我必须从一个页面导航到另一个页面。我的问题是,如果从一个页面导航到另一个页面,则将其添加到导航堆栈。例如,如果我的应用具有导航,例如 Page1 - >第2页 - >第3页 - >第4页 - > Page1 (它的行为类似于周期)当我第二次导航到该页面时它会替换 Page1 还是将它添加到堆栈中。任何人都可以用简单的方式解释导航吗?

修改

我的意思是替换意味着如果从一个页面导航到另一个页面会将其添加到堆栈中,如果导航像循环一样继续并继续将其添加到堆栈中,它是否会影响应用程序的性能? ?

注意:我不想回到上一页,只想继续从一个页面导航到另一个页面。

提前致谢

3 个答案:

答案 0 :(得分:0)

你能再试一下这个问题了吗? '替换'是什么意思?

这是一个堆栈,所以没有:第一页1将不会被“替换”,而是“副本”将会到位。

示例:

想象一下带有绑定数据对象的列表视图。单击某个项目时,将转到项目详细信息页面。想象一下详细信息页面有上一个和下一个按钮导航到其他项目,然后按一个。堆栈将如下所示:ListViewPage - > ItemsPage - > ItemsPage。

答案 1 :(得分:0)

您所谈论的是CarouselPage

CarouselPage需要多个ContentPage子项,并允许您横向滑动以切换页面。

public class App
{
    public static Page GetMainPage ()
    {  
        var carousel = new CarouselPage ();
        carousel.Children.Add (new ContentPage () {
            Title="One",
            Content = new BoxView {
                WidthRequest = 90,
                HeightRequest = 100,
                BackgroundColor = Color.Blue
            }
        });
        carousel.Children.Add (new ContentPage () {  
            Title="TWO",
            Content = new BoxView {
                WidthRequest = 90,
                HeightRequest = 100,
                BackgroundColor = Color.Red
            }
        }); 
        return carousel;
    }
}

或者,您可以在要显示的每个页面上放置两个按钮(或合适的UI元素),并使用Navigation.PushModalAsync()导航到上一页/下一页

答案 2 :(得分:0)

PushModalAsync 之前使用 this.Navigation.PopModalAsync()为我做了诀窍。

this.Navigation.PopModalAsync ();

现在我的应用程序运行顺利:)